История изменений
Исправление 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 (генерация тривиального кода), но, на мой взгляд, это костыль.