nas*_*fin 12 java java-8 java-stream
我注意到Stream中暴露的许多功能在收集器中显然是重复的,例如Stream.map(Foo::bar)对比Collectors.mapping(Foo::bar, ...)或Stream.count()对比Collectors.counting().这些方法有什么区别?有性能差异吗?它们是否以某种方式实现不同,这会影响它们的并行化程度?
Bri*_*etz 12
看似复制功能的收集器Stream存在,因此它们可以用作收集器组合器的下游收集器groupingBy().
举一个具体的例子,假设您想要计算"卖家的交易数量".你可以这样做:
Map<Seller, Long> salesBySeller =
txns.stream()
.collect(groupingBy(Txn::getSeller, counting()));
Run Code Online (Sandbox Code Playgroud)
没有收藏家喜欢counting()或者mapping(),这些类型的查询会更加困难.
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |