利用stream流统计名字与性别相同的人的数量
时间: 2023-06-03 13:07:58 浏览: 191
您好,可以使用Java 8中的Stream流API来实现统计名字与性别相同的人的数量。代码如下:
```
List<Person> personList = Arrays.asList(
new Person("张三", "男"),
new Person("李四", "女"),
new Person("张三", "男"),
new Person("王五", "男"),
new Person("张三", "女")
);
long count = personList.stream()
.filter(person -> person.getName().equals(person.getGender()))
.count();
System.out.println("名字与性别相同的人的数量为:" + count);
```
注:示例中的Person类包含name和gender属性,具体代码实现请自行补全。
相关问题
利用stream流统计名字相同并且性别也相同的人的数量
好的,这个问题是可以回答的。您可以使用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));
```
希望可以帮到您!
阅读全文