Карта Java <String, String []> как суммировать значения - PullRequest
0 голосов
/ 12 января 2019

У меня есть такая карта Map<String,String[]> Я хочу суммировать ее значения, значения представляют собой таблицы String. Я знаю, что они являются числами. Пожалуйста, покажи мне, как это сделать с помощью потоков. Я пробовал:

Map<String, String[]> map = new HashMap<>();
int sum = map.values().stream().mapToInt(Integer::parseInt).sum();

1 Ответ

0 голосов
/ 12 января 2019

В вопросе map.values() возвращает Set из String[], вы должны

1) Первый поток Set<String[]>

2) Затем преобразуйте String[] в поток массива, а строку в int

.
int sum = map.values()
             .stream()
             .flatMap(Arrays::stream)
             .mapToInt(Integer::intValue)
             .sum();
...