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
Release: 2024-11-11 06:39:02
Original
689 people have browsed it

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);
    }
}
Copy after login

This will produce the following output:

{Hello=2, World=1}
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template