«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно подсчитывать частоту слов в списке с помощью Java 8?

Как я могу эффективно подсчитывать частоту слов в списке с помощью Java 8?

Опубликовано 8 ноября 2024 г.
Просматривать:650

How can I efficiently count word frequency in a list using Java 8?

Подсчет частоты слов с помощью Java 8

В веб-разработке и анализе данных понимание частоты слов имеет решающее значение. Чтобы добиться этого, мы углубимся в то, как подсчитывать частоту слов в списке с помощью Java 8.

Решение для Java 8

API Stream в Java 8 предоставляет элегантное решение для слов счет частоты. Для начала создайте список слов:

List wordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");

Основная логика включает группировку слов по их идентичности и подсчет вхождений:

Map collect = wordsList.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

Это создает карту, где каждый ключ представляет собой уникальное слово, а соответствующее значение — это его частота. Вывод должен выглядеть следующим образом:

{ciao=2, hello=1, bye=2}

Подсчет целых значений

Если вам нужны целочисленные значения вместо длинных значений используйте:

Map collect = wordsList.stream()
     .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));

Сортировка карты по значению

Чтобы отсортировать карту на основе значений в в порядке убывания, используйте:

LinkedHashMap countByWordSorted = collect.entrySet()
            .stream()
            .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
            .collect(Collectors.toMap(
                    Map.Entry::getKey,
                    Map.Entry::getValue,
                    (v1, v2) -> {
                        throw new IllegalStateException();
                    },
                    LinkedHashMap::new
            ));

Этот шаг возвращает отсортированный LinkedHashMap, где ключи представляют слова, а значения представляют их отсортированные частоты.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3