[英]What's the difference between groupingby and mapping in Collectors (Java)?
[英]What's the difference between Stream.map(…) and Collectors.mapping(…)?
似乎在Stream
復制功能的收集器存在,因此它們可以用作收集器組合器的下游收集器 ,例如groupingBy()
。
舉一個具體的例子,假設您想要計算“賣家的交易數量”。 你可以這樣做:
Map<Seller, Long> salesBySeller =
txns.stream()
.collect(groupingBy(Txn::getSeller, counting()));
如果沒有collect counting()
或mapping()
類的收集器,這些類型的查詢會更加困難。
有很大的不同。 流操作可以分為兩組:
Stream.map
, Stream.flatMap
, Stream.filter
。 那些生成Stream的實例並且總是懶惰的 ,例如,沒有實際遍歷Stream元素。 這些操作用於創建轉換鏈 。 Stream.collect
, Stream.findFirst
, Stream.reduce
等。執行實際工作,例如對流執行轉換鏈操作,生成終端值 。 可以是List,元素數,第一元素等。 有關更多信息,請查看Stream包摘要 javadoc。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.