Heim >Java >javaLernprogramm >Wie zähle ich das Vorkommen von Elementen in einem Java Stream mit „groupBy()'?

Wie zähle ich das Vorkommen von Elementen in einem Java Stream mit „groupBy()'?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-03 10:05:17568Durchsuche

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

Zählen von Vorkommen mit GroupBy in Java Streams

Java Stream API bietet leistungsstarke Mechanismen für die effiziente Bearbeitung und Aggregation von Daten. Eine häufige Aufgabe besteht darin, das Vorkommen von Elementen innerhalb eines Streams zu zählen. Um dies mit der Methode „groupBy()“ zu erreichen, muss ein zusätzlicher Kollektor genutzt werden.

Beachten Sie den folgenden Codeausschnitt, der darauf abzielt, Elemente in einem Stream in einer Karte zu sammeln, in der Schlüssel eindeutige Elemente und Werte deren Vorkommen darstellen:

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

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

Um dies zu erreichen, können wir die Methode „groupBy()“ mit einem Collectors.counting()-Kollektor verwenden, um Folgendes auszuführen counting:

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);
    }
}

Erläuterung:

  • Collectors.groupingBy(Function.identity()): Gruppiert Elemente basierend auf ihrer Identität und behandelt jedes eindeutige Element effektiv als Schlüssel.
  • Collectors.counting(): Berechnet die Anzahl der Vorkommen für jede Gruppe.

Die Die resultierende gezählte Karte verfügt über Schlüssel als Elemente und Werte entsprechend ihrer jeweiligen Anzahl:

{Hello=2, World=1}

Alternativ können Sie aus Effizienzgründen in bestimmten Szenarien die Verwendung von Collectors.groupingByConcurrent erkunden. Denken Sie daran, zu beurteilen, ob Ihr spezifischer Anwendungsfall mit den Sicherheitsanforderungen der gleichzeitigen Gruppierung übereinstimmt.

Das obige ist der detaillierte Inhalt vonWie zähle ich das Vorkommen von Elementen in einem Java Stream mit „groupBy()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn