1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class dudul {
public static void main(String[] args) {
List<convert> list_initiale = new ArrayList<>();
list_initiale.add(new convert(318,0.98734f));
list_initiale.add(new convert(318,0.99074f));
list_initiale.add(new convert(318,1.00000f));
list_initiale.add(new convert(318,1.06250f));
list_initiale.add(new convert(324,0.00000f));
list_initiale.add(new convert(324,0.10000f));
list_initiale.add(new convert(324,0.20000f));
list_initiale.add(new convert(324,0.30000f));
// Regroupe par date et cree une liste pour chaque entrée.
Map<Integer, List<convert>> list_initialeByDate = list_initiale.stream().collect(Collectors.groupingBy(p -> ((convert) p).getDate()));
// Pour chaque entrée execute la sous fonction entre les {}
list_initialeByDate.forEach((date,valeur) -> {
// Fait une moyenne sur la valeur p.getValeur() pour chaque date k
Double averageAge = valeur.stream().collect(Collectors.averagingDouble(p -> ((convert) p).getValeur()));
System.err.println(date+ "==" +averageAge);
});
System.err.println("Autre moyen sans le ->");
// Alternative au cas ou...
list_initialeByDate.forEach(dudul::methode_moyenne);
}
public static void methode_moyenne(Integer date, List<convert> valeur)
{
Double averageAge = valeur.stream().collect(Collectors.averagingDouble(p -> ((convert) p).getValeur()));
System.err.println(date+ "==" +averageAge);
}
} |
Partager