Distinct по упорядоченному stream даст [1, 2, 3]. Для частот используйте groupingBy с counting; каждое из трёх значений встречается дважды.
Как получить уникальные строки и частоты в Java
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 имеет фиксированный размер, поэтому добавление или удаление элементов через этот список не поддерживается.