Mr_*_*s_D 14 java aggregation java-8
浏览Brian Goetz 这个非常有趣但却有一年历史的演示文稿 - 在幻灯片链接中他提出了一个aggregateBy()假设在Stream API中的方法,该方法应该将列表(?)的元素聚合到一个映射(给定一个默认的初始值)以及操作该值的方法(对于重复键也是如此) - 请参阅演示文稿中的下一张幻灯片).
显然,Stream API中没有这样的方法.还有另一种方法可以在Java 8中做类似的事情吗?
Ale*_* C. 14
可以使用Collectors类完成聚合操作.所以在视频中,示例相当于:
Map<String, Integer> map =
documents.stream().collect(Collectors.groupingBy(Document::getAuthor, Collectors.summingInt(Document::getPageCount)));
Run Code Online (Sandbox Code Playgroud)
该groupingBy方法会给你一个Map<String, List<Document>>.现在,您必须使用下游收集器来汇总List与每个键关联的每个文档的所有页数.
这是通过提供下游收集器来完成的groupingBy,这summingInt导致了a Map<String, Integer>.
我认为他们删除了这个操作并创建了这个Collectors类,而不是让一个有用的类包含很多通常会使用的减少.
| 归档时间: |
|
| 查看次数: |
1010 次 |
| 最近记录: |