В веб-разработке и анализе данных понимание частоты слов имеет решающее значение. Чтобы добиться этого, мы углубимся в то, как подсчитывать частоту слов в списке с помощью Java 8.
API Stream в Java 8 предоставляет элегантное решение для слов счет частоты. Для начала создайте список слов:
ListwordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
Основная логика включает группировку слов по их идентичности и подсчет вхождений:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Это создает карту, где каждый ключ представляет собой уникальное слово, а соответствующее значение — это его частота. Вывод должен выглядеть следующим образом:
{ciao=2, hello=1, bye=2}
Подсчет целых значений
Если вам нужны целочисленные значения вместо длинных значений используйте:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));
Чтобы отсортировать карту на основе значений в в порядке убывания, используйте:
LinkedHashMapcountByWordSorted = 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