arraylist

时间:2016-03-01 21:30:09

标签: java arraylist grouping

我有3个班级:

  
      
  1. 计算类(包括使用double值返回的FinalPrice()方法)
  2.   
  3. 文件阅读器类(加载CSV文件,将数据拆分为数组并使用数组的第一个元素返回,这是一个String。包含getType()方法)
  4.   
  5. 合同类(仅包含构造函数)
  6.         

    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

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

在Java 8中,

 entries.stream().collect(Collectors.groupingBy(
      entry -> entry.getKey(),
      Collectors.summingInt(entry -> entry.getValue())));