Stream API получить сумму всех ключей Map
Почему-то не получается посчитать сумму всех ключей
Man vasia = new Man("vasia", "Pupkin", 2, 24, odessa);
Man olaf = new Man("olaf", "olaf", 2, 24, moskov);
...
надо посчитать сумму всех детей у пользователей Я написал так, но x.get(x) нет возможности выбрать,не пойму почему.
final Map<Integer, List<Man>> coll = manLinkedList.stream()
.collect(Collectors.groupingBy(Man::getCountOfChildren));
int sum = coll.keySet().stream().mapToInt(x -> почему тут не могу испольховать x.get(x) + x ).sum();
System.out.println(sum);
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
Вам не нужен Map, все на много проще:
int sum = manLinkedList.stream().mapToInt(Man::getCountOfChildren).sum();
И еще... Если у вас нет весомых аргументов для использования LinkedList откажитесь от него в пользу ArrayList. Не забывайте, что LinkedList является двусвязным списком, соответственно, каждый его элемент - полноценная нода со всеми вытекающими. Посему при использовании ArrayList вы в подавляющем большинстве случаев выиграете.