117.info
人生若只如初见

Java Stream如何分组并统计元素数量

在Java Stream中,可以使用Collectors.groupingBy()方法来对元素进行分组,然后通过Collectors.counting()方法统计每个分组中元素的数量。

以下是一个示例代码,演示如何对一个包含数字的Stream进行分组并统计元素数量:

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List numbers = Arrays.asList(1, 2, 3, 4, 5, 1, 2, 3, 4, 1);

        Map countByNumber = numbers.stream()
                .collect(Collectors.groupingBy(n -> n, Collectors.counting()));

        countByNumber.forEach((number, count) -> System.out.println(number + " : " + count));
    }
}

在上面的例子中,我们首先将数字列表转换为一个Stream,然后使用groupingBy()方法根据数字进行分组,然后通过counting()方法统计每个分组中元素的数量。最后,我们将结果打印出来,得到如下输出:

1 : 3
2 : 2
3 : 2
4 : 2
5 : 1

这表明数字1出现了3次,数字2、3、4分别出现了2次,数字5出现了1次。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe0aeAzsABAZXBA.html

推荐文章

  • java中enum怎样序列化和反序列化

    在Java中,可以使用序列化和反序列化来操作枚举类型。要序列化和反序列化一个枚举类型,可以简单地将枚举类型实现Serializable接口,并使用ObjectOutputStream和...

  • java中enum支持方法重载吗

    在Java中,枚举(enum)类型是一种特殊的类,因此它可以拥有方法。枚举类型中的方法可以被重载,就像普通的类中的方法一样。下面是一个示例:
    enum Direction...

  • java中enum如何实现多态

    在Java中,枚举类型也可以实现多态,可以通过在枚举类中定义抽象方法来实现多态。在定义枚举类型时,可以为枚举常量添加不同的实现,然后在枚举类中定义抽象方法...

  • java中enum能实现单例模式吗

    在Java中,可以使用enum实现单例模式。通过在enum中定义一个枚举常量来表示单例对象,这样就可以确保在程序中只有一个实例存在。
    以下是一个使用enum实现单...

  • Java Stream中的distinct()方法如何使用

    Java Stream中的distinct()方法用于去除流中重复的元素。它返回一个包含不重复元素的新流。
    例如,假设有一个包含重复元素的整数流,我们可以使用distinct(...

  • Java Stream如何实现元素的去重

    Java Stream提供了distinct()方法来实现元素的去重。distinct()方法返回一个去重后的Stream,只包含不重复的元素。
    例如,下面的示例代码使用distinct()方法...

  • Java Stream的flatMap如何合并嵌套集合

    在Java Stream中,flatMap操作可以用于将嵌套集合合并成一个扁平的集合。这个操作非常适用于处理嵌套数据结构,例如List。
    假设我们有一个嵌套的List,我们...

  • Java Matcher如何避免贪婪匹配

    在 Java Matcher 中避免贪婪匹配可以通过在正则表达式中使用 “?” 操作符来实现。该操作符可以在量词后面添加,表示进行非贪婪匹配。
    例如,如果需要匹配一...