stream根据字段分组求和
时间: 2023-09-04 18:10:25 浏览: 155
Java8 stream 中利用 groupingBy 进行多字段分组求和案例
5星 · 资源好评率100%
在给定的代码中,使用了Java 8的Stream API来根据字段进行分组并求和。首先,通过使用`keySet().stream()`方法,将Map的键转换为Stream。然后,使用`map()`方法对每个键进行处理,将其拆分为多个字段,并创建一个新的对象。在这个例子中,使用`split("_")`方法将键拆分为三个字段:`deliveryAgentId1`、`productSku`和`checkOutTime`。接下来,使用这些字段创建一个新的`AgentCheckoutStockDetail`对象,并将对应的值设置为`countMap`中对应键的值。最后,使用`collect()`方法将处理后的对象收集到一个List中。
在求和的过程中,使用了`Collectors.summingLong()`方法,该方法接收一个函数作为参数,用于指定要对哪个字段进行求和。在这个例子中,使用了`AgentCheckoutStockDetail::getActualCount`方法引用,表示对`actualCount`字段进行求和。
综上所述,给定的代码使用Stream API根据字段进行分组,并对指定字段进行求和。
阅读全文