У меня есть список предметов, как показано ниже
List<SomeModel> smList = new ArrayList<>();
smList.add(new SomeModel(1L,6.0f));//id = 1L and capacity = 6.0f
smList.add(new SomeModel(2L,7.0f));
smList.add(new SomeModel(3L,7.0f));
smList.add(new SomeModel(4L,7.0f));
Теперь я преобразовываю этот список в
Map<Float, Set<Long>> complexList = new HashMap<>();
complexList = smList.stream().collect(Collectors.groupingBy(SomeModel::getCapacity,
Collectors.mapping(SomeModel::getId, Collectors.toSet())));
здесь complexList выдает вывод как
7.0=[2, 3, 4]
6.0=[1]
Теперь мне нужно посчитать количество значений для каждой «емкости», выдавая вывод как
7.0=3
6.0=1
Я пытался
Map<Float, Long> complexCount = complexList.entrySet().stream().
collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.counting())));
complexCount.forEach((k,v)->System.out.println(k+"="+v));
, и он выдает
6.0=1
7.0=1
Я долженошибаться в понимании потоков или не использовать правильные методы.Кто-нибудь может предложить подход или решение?Ссылка на потоки также будет полезна.