У меня есть 3 класса:Java группировки значений в ArrayList
- класс расчета (включает в себя метод FinalPrice(), который вернется с двойным значением)
- Файл класса чтения (файл CSV нагрузки, расщепленный данные в массив и вернуться с первым элементом массива, который является строкой. Включает в себя метод 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());
мне нужен список объектов для хранения контрактов и группировка ключей (что b.getType (а)) и просуммировать их значения (что calc.FinalPrice()), как
Input (например):
list.add("AB", 5); list.add("AC", 8); list.add("AB", 12);
Я хотел бы получить выход так:
"AB" : 17 "AC" : 8
Может кто-нибудь мне помочь?
вы можете перебирать свой ArrayList или карту или независимо, и во втором списке совокупной величины (проверьте, содержит(), если ключ уже во втором списке или нет) - это, конечно, не очень показательно, но оно должно работать. В зависимости от того, насколько велик ваш список/карта –
Это дубликат: http://stackoverflow.com/questions/23848129/is-there-an-aggregateby-method-in-the-stream-java-8-api – Tunaki