Я имел дело с упражнением, в котором я должен найти решение для следующей проблемы: у меня есть
HashMap<Integer, List<Integer>>
и я должен получить список, содержащий каждый из элементов всех списков в HashMap с максимальным количеством вхождений в любом из списков. Итак, давайте предположим, что мой HashMap имеет следующие записи:
25, [30,30,2]
7, [2, 2, 2]
8, [8, 30]
В этом случае я должен каким-то образом получить список со следующими элементами: [2, 2, 2, 8, 30, 30], потому что максимальные вхождения каждого из чисел:
- в случае 2 это 3 (в значении 7)
- в случае 8 это 1 (в значении 8)
- в случае 30 это 2 (в значении 25)
Я пытаюсь использовать для этого потоки, и я написал следующий код:
map.entrySet()
.stream()
.map(Map.Entry::getValue)
.collect(Collectors.toList());
Это позволяет получить отдельные списки, но мне нужно получить один список, содержащий все элементы в любом из списков, с максимальным числом раз, которое оно было упомянуто. Порядок элементов не имеет значения вообще.
Пожалуйста, спросите меня, если вам нужны пояснения.
Заранее спасибо за помощь.