平均分组 java_java – 按属性分组对象列表,并计算每个对象的对象属性的平均值...
假設我有一個Person類:
class Person {
String firstName;
String age;
public String getFirstName() {
return firstName;
}
public String getAge() {
return age;
}
}
我有一個List< Person>作為輸入.作為輸出,我想獲得每個firstName的平均年齡的DoubleStream.我目前已經像這樣實現了它,它有效:
public DoubleStream getAverageAgesPerFirstName(List people) {
return people
.stream()
.collect(
groupingBy(Person::getFirstName)
)
.entrySet()
.stream()
.collect(
toMap(Entry::getKey, this::getAverageAge)
)
.values()
.stream()
.mapToDouble(Double::doubleValue)
}
private double getAverageAge(Entry> entry) {
return entry.getValue().stream().map(Person::getAge).mapToDouble(Integer::doubleValue).average().orElse(0);
}
我覺得應該有一個更有效的方法來解決這個問題.最值得注意的是,我在創建兩個中間地圖之前再次將它們轉換為流.
總結
以上是生活随笔為你收集整理的平均分组 java_java – 按属性分组对象列表,并计算每个对象的对象属性的平均值...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 存储过程 数组参数_执行数组参
- 下一篇: jsp java语法_javaweb-j