利用stream流统计名字相同并且性别也相同的人的数量
时间: 2023-06-03 12:07:59 浏览: 180
好的,这个问题是可以回答的。您可以使用Java 8的Stream来进行统计。假设您有一个Person类,包含name和sex属性,代码可以如下:
```
List<Person> personList = ... ; // 假设这是您的Person列表
Map<String, Long> countMap = personList.stream()
.collect(Collectors.groupingBy(p -> p.getName() + "_" + p.getSex(), Collectors.counting()));
```
这将会返回一个Map,其中key是name和sex的组合,value是数量。如果您只关心数量大于1的组合,可以加上一个过滤器:
```
Map<String, Long> countMap = personList.stream()
.collect(Collectors.groupingBy(p -> p.getName() + "_" + p.getSex(), Collectors.counting()))
.entrySet().stream()
.filter(entry -> entry.getValue() > 1)
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
```
希望可以帮到您!
阅读全文