java stream 分组计数
时间: 2023-05-03 10:05:57 浏览: 261
Java Stream 是 Java 8 中引入的新特性,它为我们处理集合和数组提供了一种更加便捷、高效的方式。在 Stream 中,我们可以使用 collect() 方法对集合进行分组、计数等操作。
分组计数是 Stream 中常用的操作之一,它通过将集合按照某个属性进行分组,然后统计每个分组中元素的数量。在 Stream 中,我们可以使用 Collectors.groupingBy() 方法实现分组,使用 Collectors.counting() 方法实现计数。
示例代码如下:
```java
List<User> userList = Arrays.asList(
new User("Tom", 18),
new User("Jerry", 20),
new User("Lucy", 18),
new User("Mary", 20)
);
Map<Integer, Long> countMap = userList.stream()
.collect(Collectors.groupingBy(User::getAge, Collectors.counting()));
System.out.println(countMap);
```
以上代码中,我们定义了一个 User 类,其中包含 name 和 age 两个属性。我们先创建了一个包含四个元素的 User 集合,然后使用 Stream 对其进行分组计数操作。
通过 userList.stream() 方法将集合转换成 Stream,然后使用 Collectors.groupingBy() 方法按照 age 属性进行分组,再使用 Collectors.counting() 方法对每个分组中的元素数量进行统计。最终,我们得到了一个 Map,其中键为年龄,值为该年龄下的人数。
输出结果为:{18=2, 20=2}
以上就是使用 Java Stream 实现分组计数的方法,通过 Stream 的简洁方便的语法,我们可以轻松地完成集合的各种操作。
阅读全文