首頁 >Java >java教程 >如何使用串流高效地統計Java中字串的出現次數?

如何使用串流高效地統計Java中字串的出現次數?

Barbara Streisand
Barbara Streisand原創
2024-11-30 17:53:16409瀏覽

How to Efficiently Count Occurrences of Strings in Java Using Streams?

使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn