Я пытаюсь получить сумму всех значений из карты, используя потоки в Java 8. Ниже приведена коллекция, которую я имею:
Map<BigDecimal, List<Object>> map = ...... //some elements in this map
Допустим, объект имеет свойства ниже:
BigDecimal previousAmount;
int typeCode;
Я пытаюсь получить сумму всех предыдущих значений для каждого объекта в списке для всех ключей.Вот то, что я придумал:
BigDecimal previousAmt = map.values().stream().flatMap(List::stream)
.map(Object::previousAmount).reduce(BigDecimal.ZERO, (a, b) -> a.add(b));
Это дает мне сумму всех элементов в списке и всех ключей правильно.Но я пытаюсь отфильтровать и получить сумму, только если typeCode больше 10.
Может ли кто-нибудь подсказать, как отфильтровать вышеуказанный поток с помощью typeCode?