stream根据某个字段统计list中的数量Java代码
时间: 2024-04-30 14:18:58 浏览: 102
可以使用Java 8的Stream API来实现根据某个字段统计list中的数量。假设有一个名为Person的类,其中包含一个名为age的属性,我们可以按照age字段来统计list中相同age值的数量。示例代码如下:
```java
import java.util.*;
import java.util.stream.*;
public class Main {
public static void main(String[] args) {
List<Person> persons = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 30),
new Person("Charlie", 20),
new Person("David", 30),
new Person("Eva", 20)
);
Map<Integer, Long> countByAge = persons.stream()
.collect(Collectors.groupingBy(Person::getAge, Collectors.counting()));
System.out.println(countByAge);
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
输出结果为:
```
{20=3, 30=2}
```
这表示list中有3个年龄为20的人,2个年龄为30的人。
阅读全文