LINUX.ORG.RU

История изменений

Исправление CARS, (текущая версия) :

Вот такое в голову пришло, за работоспособность не ручаюсь.

Map<Integer, Double> bIdToSumOfValues = listA.stream().collect(Collectors.toMap(a -> a.b.id, a -> a.value, Double::sum));
Map<String, Double> result = listB.stream().collect(Collectors.toMap(b -> b.name, b -> bIdToSumOfValues.get(b.id)));

Что касается полей, то лучше делать их private, с public-геттерами и public-сеттерами. Если лень писать эти методы, то можно посмотреть в сторону Project Lombok (генерация тривиального кода), но, на мой взгляд, это костыль.

Исходная версия CARS, :

Вот такое в голову пришло, за работоспособность не ручаюсь.

Map<Integer, Double> bIdToSumOfValues = listA.stream().collect(Collectors.toMap(a -> a.b.id, a -> a.value, Double::sum));
Map<String, Double> result = listB.stream().collect(Collectors.toMap(b -> b.name, b -> bIdToSumOfValues.get(b.id)));


Что касается полей, то лучше делать их private, с public-геттерами и public-сеттерами. Если лень писать эти методы, то можно посмотреть в сторону Project Lombok (генерация тривиального кода), но, на мой взгляд, это костыль.