2015-04-28 2 views
1

Прямо сейчас у меня есть HashMap, который я пытаюсь свести к общей сумме. Вот текущий код:Очистка карты уменьшена с помощью Java 8 и HashMap

HashMap map = new HashMap<String, Long>(); 
map.put("ex1", 757L); 
map.put("ex2", 77L); 

map.values() 
    .stream() 
    .reduce(0L, (a, b) -> a + b); 

Есть ли более элегантный способ сделать это? Я бы хотел использовать метод sum.

+1

Аналогично [это] (http://stackoverflow.com/q/24421140/2711488), просто замените '' double' с междунар ', соответственно. 'Double' с' Integer' ... – Holger

ответ

6

Вы можете использовать mapToLong, чтобы получить LongStream затем вызвать sum()

long sum = map.values().stream().mapToLong(i -> i).sum(); 
Смежные вопросы