mans.stream()
.collect((Collectors.groupingBy(Man::getAmountOfChild, Collectors.groupingBy(Man::getOld)))) //как подсчитать
.entrySet()
.forEach(map-> System.out.println(map.getKey() + " " + map.getValue()));
List<Man> mans = asList(
new Man(1, 25),
new Man(1, 32),
new Man(2, 40),
new Man(2, 42),
new Man(2, 40),
new Man(4, 40));
Map<Integer, Map<Integer, Long>> collect = mans.stream()
.collect(Collectors.groupingBy(Man::getAmountOfChild,
Collectors.groupingBy(Man::getOld, Collectors.counting())));
collect.forEach((amountOfChild,v) ->
v.forEach((old, count) ->
System.out.println(String.format("amountOfChild = %s old = %s count = %s", amountOfChild, old, count))));
Результат:
amountOfChild = 1 old = 32 count = 1
amountOfChild = 1 old = 25 count = 1
amountOfChild = 2 old = 40 count = 2
amountOfChild = 2 old = 42 count = 1
amountOfChild = 4 old = 40 count = 1
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости