首頁 >Java >java教程 >如何使用「groupBy()」計算 Java 流中元素的出現次數?

如何使用「groupBy()」計算 Java 流中元素的出現次數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-03 10:05:17569瀏覽

How do I count occurrences of elements in a Java Stream using `groupBy()`?

在 Java Streams 中使用 GroupBy 計算出現次數

Java Stream API 提供了強大的機制來有效地操作和聚合資料。常見任務是計算流中元素的出現次數。使用 groupBy() 方法實作此目的需要利用額外的收集器。

考慮以下程式碼片段,其目的是將流中的元素收集到映射中,其中鍵代表唯一元素,值代表它們的出現次數:

List<String> list = Arrays.asList("Hello", "Hello", "World");

// Desired output:
// {Hello=2, World=1}

為了實現這一點,我們可以使用帶有Collectors.counting() 收集器的groupBy()方法來執行計數:

import java.util.*;
import java.util.stream.*;

class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("Hello");
        list.add("Hello");
        list.add("World");

        Map<String, Long> counted = list.stream()
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

        System.out.println(counted);
    }
}

解釋:

  • Collectors.groupingBy(Function.identity()):根據元素的身份將元素分組,有效地將每個唯一元素視為鍵。
  • Collectors.counting():計算每個集合出現的次數

產生的計數對應將鍵作為元素,值作為各自的計數:

{Hello=2, World=1}

或者,出於某些場景下的效率考慮,您可以探索使用收集器.groupingByConcurrent。請記住評估您的特定用例是否符合並發分組的安全性要求。

以上是如何使用「groupBy()」計算 Java 流中元素的出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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