在 Web 開發和資料分析中,理解詞頻至關重要。為了實現這一目標,我們將深入研究如何使用 Java 8 計算清單中單字的頻率。
Java 8 中的 Stream API 為單字提供了一個優雅的解決方案頻率計數。首先,建立一個單字清單:
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