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
Freigeben: 2024-12-03 10:05:17
Original
649 Leute haben es durchsucht

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}
Nach dem Login kopieren

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);
    }
}
Nach dem Login kopieren

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}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage