【发布时间】:2015-02-10 14:23:33
【问题描述】:
我对 java 8 中的流非常陌生,所以我的方法可能是错误的。
我有2个对象如下
object1 {
BigDecimal amount;
Code1 code1;
Code2 code2;
Code3 code3;
String desc;
}
object2 {
BigDecimal amount;
Code1 code1;
Code2 code2;
Code3 code3;
}
所以我想收集 code1 && code2 && code3 相同的所有 object1,然后将数量加到 object2 列表中。
我没有代码来做这件事...我想编写一个代码来完成这项工作 我正在尝试从http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html实现一些东西
或者按部门计算所有工资的总和:
// Compute sum of salaries by department
Map<Department, Integer> totalByDept = employees.stream()
.collect(Collectors.groupingBy(Employee::getDepartment,
Collectors.summingInt(Employee::getSalary)));
【问题讨论】:
-
BigDecimals 的总和如何最终成为 object2 的列表?请向我们展示真实代码。
-
根据要求编辑了我的问题。
-
那么,Department 类的等价物是什么?您需要这样一个类作为地图中的键,否则您无法返回地图。
-
Code1、code2 和 code3 实际上是类...我会编辑它
-
这不能回答我的问题。您想按什么对对象进行分组?
标签: dictionary java-8 grouping java-stream collectors