我有3个班级:
- 计算类(包括使用double值返回的FinalPrice()方法)
- 文件阅读器类(加载CSV文件,将数据拆分为数组并使用数组的第一个元素返回,这是一个String。包含getType()方法)
- 合同类(仅包含构造函数)
醇>
File a = new File("D:\\...\\contract.csv"); Calculation1 calc = new Calculation1(a); File_Reader1 b = new File_Reader1(); Contract c = new Contract(b.getType(a),calc.FinalPrice());
我需要一个列表来存储Contract对象并对键进行分组(这是b.getType(a))并将它们的值相加(即calc.FinalPrice()),如
输入(例如):
list.add("AB", 5); list.add("AC", 8); list.add("AB", 12);
我想得到这样的输出:
"AB" : 17 "AC" : 8
任何人都可以帮助我吗?
答案 0 :(得分:1)
在Java 8中,
entries.stream().collect(Collectors.groupingBy(
entry -> entry.getKey(),
Collectors.summingInt(entry -> entry.getValue())));