Próbuję dostać się do programowania funkcyjnego na Java 8Java 8 strumień, uzyskać średnią wieku od kraju
klasa User
public class User {
private String name;
private Country country;
private int age;
// setters - getters
}
klasa Kraj
public class Country {
private String name;
private int population;
//setters - getters
}
Teraz chcę uzyskać średni wiek użytkowników według krajów, w zasadzie Map<String, Double>
. Mogę to zrobić po prostu przez iterację listy użytkowników. Jednak chciałbym wdrożyć go w sposób functional
, z stream
. Wiem o collect
i groupingBy
.
Próbowałem users.stream().collect(Collectors.groupingBy(user -> user.getCountry()));
i otrzymałem numer Map<String, List<User>>
. Nie mogę wymyślić, jak wykonać część uśredniającą.
rzucić okiem tutaj https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#groupingBy- java.util.function.Function-java.util.stream.Collector- – user902383