Если вы хотите суммировать целочисленное значение из потока, есть два основных способа сделать это:
ToIntFunction<...> mapFunc = ...
int sum = stream().collect(Collectors.summingInt(mapFunc))
int sum = stream().mapToInt(mapFunc).sum()
Первый включает в себя боксирование возвращаемого целого числа и его распаковку, но есть дополнительный шаг во втором.
Что более эффективно/понятно?