Home >Java >javaTutorial >How Can I Count String Occurrences in a List Using Java Streams?

How Can I Count String Occurrences in a List Using Java Streams?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-11 06:39:02724browse

How Can I Count String Occurrences in a List Using Java Streams?

Counting Occurrences with groupBy

The groupBy method in Java streams allows us to collect elements into groups based on a specified key. In this case, we want to group strings by their value and count the occurrences within each group.

To achieve this, we can use the overload of groupBy that takes a second Collector. We will provide Collectors.counting() as this Collector, which will count the elements within each group.

Here's how to implement this using a stream:

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

This will produce the following output:

{Hello=2, World=1}

The map contains two entries, with "Hello" mapped to 2 and "World" mapped to 1. This represents the count of occurrences for each word in the input list.

Note that we can also use groupingByConcurrent for improved efficiency, especially in scenarios where concurrent execution is safe.

The above is the detailed content of How Can I Count String Occurrences in a List Using Java Streams?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn