Heim >Java >javaLernprogramm >Wie kann ich Java 8 Streams verwenden, um das Vorkommen doppelter Elemente effizient zu zählen?

Wie kann ich Java 8 Streams verwenden, um das Vorkommen doppelter Elemente effizient zu zählen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-15 04:29:021042Durchsuche

How can I use Java 8 Streams to efficiently count occurrences of duplicate elements?

Zählen von Vorkommen mit Java 8-Streams mithilfe von groupBy

In Java 8-Streams können Sie mit der Methode „groupBy“ Elemente basierend auf einer bestimmten Eigenschaft gruppieren oder Wert. In Kombination mit einem anderen Kollektor, beispielsweise dem Zählen, können Sie das Vorkommen doppelter Elemente in einem Stream effizient zählen.

Betrachten wir ein Beispiel:

List<String> list = Arrays.asList("Hello", "Hello", "World");
Map<String, Long> wordToFrequency = list.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

In diesem Beispiel verwenden wir Collect-Methode mit einer Überladung, die einen Collector als Argument verwendet. Innerhalb des Collectors verwenden wir „groupingBy“, um die Elemente basierend auf ihrem String-Wert (der Identitätsfunktion) zu gruppieren. Anschließend kombinieren wir dies mit Collectors.counting(), um die Vorkommen jeder eindeutigen Zeichenfolge zu zählen.

Als Ergebnis erhalten wir eine Karte, in der jeder Schlüssel eine eindeutige Zeichenfolge ist und der entsprechende Wert die Anzahl der Vorkommen in ist die Liste. In diesem Fall würde die Karte Folgendes enthalten:

{Hello=2, World=1}

Dieser Ansatz ist äußerst effizient und einfach zu verwenden, sodass er für verschiedene Szenarien geeignet ist, in denen Sie das Vorkommen von Elementen in einem Stream basierend auf einer bestimmten Eigenschaft zählen müssen . Denken Sie daran, dass Sie bei Bedarf auch groupingByConcurrent für eine verbesserte Leistung nutzen können.

Das obige ist der detaillierte Inhalt vonWie kann ich Java 8 Streams verwenden, um das Vorkommen doppelter Elemente effizient zu zählen?. 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