Как получить уникальные строки и частоты в Java

Distinct по упорядоченному stream даст [1, 2, 3]. Для частот используйте groupingBy с counting; каждое из трёх значений встречается дважды.

Короткий ответ

Что ответить на собеседовании

Distinct по упорядоченному stream даст [1, 2, 3]. Для частот используйте groupingBy с counting; каждое из трёх значений встречается дважды.

Подробный разбор

Ответ с пояснениями

Условие

Дан List<String> words = Arrays.asList("1","1","2","2","3","3"). Получите уникальные значения в исходном порядке и число вхождений каждого.

Ответ

Distinct по упорядоченному stream даст [1, 2, 3]. Для частот используйте groupingBy с counting; каждое из трёх значений встречается дважды.

Пример частот: words.stream().collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting())). LinkedHashMap сохраняет порядок первого появления. Нужны соответствующие импорты java.util, java.util.function и java.util.stream. Arrays.asList имеет фиксированный размер, поэтому добавление или удаление элементов через этот список не поддерживается.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее