【发布时间】:2019-05-06 18:01:35
【问题描述】:
我在一个 ArrayList 中有以下类对象:
new Pojo("Football","M",1000)
new Pojo("Football","M",1000)
new Pojo("Cricket","F",500)
new Pojo("Cricket","F",1500)
new Pojo("Cricket","M",500)
new Pojo("Cricket","M",500)
我想获得“体育”相对于“性别”的平均分。 我遇到了 Java 8 Streams,在这里使用它似乎很好,但我不知道如何实现它。
我试过如下:
Map<Object,Long> mp = pojoList.stream().collect(Collectors.groupingBy(p -> p.sport,Collectors.counting()));
效果很好,给了我一个运动计数,但我想再应用一个性别过滤器并获得平均分。
我想要的输出:
new PojoOutput("Football","M",1000)
new PojoOutput("Cricket","F",1000)
new PojoOutput("Cricket","M",500)
【问题讨论】:
标签: java java-8 java-stream