Как такое посчитать с помощью Stream API?

У меня есть большой массив элементов моего класса. В классе есть 2 поля: String perc и String name. Никак не могу понять как с помощью Stream API мне посчитать количество различных name для каждого уникального perc.


Ответы (1 шт):

Автор решения: lampa
List<Hero> heroes = new ArrayList<>();
heroes.add(new Hero("Alex", "box"));
heroes.add(new Hero("Alex", "box"));
heroes.add(new Hero("Nina", "box"));
heroes.add(new Hero("Lampa", "box"));

heroes.add(new Hero("Alex", "table"));
heroes.add(new Hero("Alex", "table"));
heroes.add(new Hero("Nina", "table"));
heroes.add(new Hero("Lampa", "table"));


Map<String, Map<String, Long>> collect = heroes
        .stream()
        .collect(Collectors.groupingBy(Hero::getPerc, Collectors.groupingBy(Hero::getName, Collectors.counting())));
→ Ссылка