6
私は、Javaに、関数型プログラミングに取得しようとしている
で平均年齢を得る8Javaの8ストリームは、国
Userクラス
public class User {
private String name;
private Country country;
private int age;
// setters - getters
}
国クラス
public class Country {
private String name;
private int population;
//setters - getters
}
今、国別の平均年齢を取得したいと思います。基本的にはMap<String, Double>
です。ユーザーリストを反復するだけで、私はそれを古い方法で行うことができます。しかし私はfunctional
の方法でそれを実装したいと考えています。stream
です。私はcollect
とgroupingBy
について知っています。
users.stream().collect(Collectors.groupingBy(user -> user.getCountry()));
を試しましたが、Map<String, List<User>>
になりました。平均化の仕方を理解することはできません。
に2つ目のパラメータを追加しますが、ここでhttps://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#groupingBy-顔をしていますjava.util.function.Function-java.util.stream.Collector- – user902383