Bei der Webentwicklung und Datenanalyse ist das Verständnis der Worthäufigkeit von entscheidender Bedeutung. Um dies zu erreichen, beschäftigen wir uns damit, wie man die Häufigkeit von Wörtern in einer Liste mit Java 8 zählt.
Die Stream-API in Java 8 bietet eine elegante Lösung für Wörter Frequenzzählung. Erstellen Sie zunächst eine Liste mit Wörtern:
ListwordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
Die Kernlogik besteht darin, die Wörter nach ihrer Identität zu gruppieren und die Vorkommen zu zählen:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Dies erzeugt eine Karte, in der jeder Schlüssel ein eindeutiges Wort ist und der entsprechende Wert seine Häufigkeit ist. Die Ausgabe sollte wie folgt aussehen:
{ciao=2, hello=1, bye=2}
Counting Integer Values
Wenn Sie ganzzahlige Werte benötigen Verwenden Sie anstelle von langen Werten:
Mapcollect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));
So sortieren Sie die Karte basierend auf Werten in Absteigende Reihenfolge, verwenden Sie:
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 ));
Dieser Schritt gibt eine sortierte LinkedHashMap zurück, in der die Schlüssel die Wörter darstellen und die Werte ihre sortierten Häufigkeiten darstellen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3