使用 Java Stream 的 groupBy 計算出現次數
在 Java 中,您可以利用串流來高效聚合資料。常見的操作是按值將項目分組並計算其出現次數。
範例
假設您有一個字串列表,並且想要計算每個唯一字串的頻率。目標是建立一個映射,其中鍵是字串,值是其出現次數。
有計數收集器的 groupBy
為了實現這一點,我們可以將 groupBy 方法與計數收集器結合使用。 groupBy 方法根據指定的鍵將元素組織成群組。在本例中,我們希望根據字串的身份對字串進行分組。
Map<String, Long> wordToFrequency = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
在此程式碼中,Function.identity() 取得字串本身作為分組鍵,本質上保留了原始元素。 Collectors.counting() 提供了一個收集器,傳回每個群組中元素的數量。
結果
分組和計數後,我們得到一個具有所需數量的地圖:
{Hello=2, World=1}
此映射包含原始字串中每個唯一字串的出現次數
效率注意事項
對於大型資料集,使用Collectors.groupingByConcurrent 可能會提高效率。它以並行方式工作,增強了多核心環境中的性能。然而,這種方法可能不適合元素順序或執行緒安全至關重要的場景。
以上是如何使用串流高效地統計Java中字串的出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!