Map<Object, Long>统计每个对象中某个字段出现的次数
时间: 2024-04-15 11:31:11 浏览: 90
统计字符出现的次数
5星 · 资源好评率100%
要统计每个对象中某个字段出现的次数,可以使用 Java 8 中的 Stream API 和 Collectors.groupingBy() 方法。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class Main {
public static void main(String[] args) {
List<Person> personList = Arrays.asList(
new Person("John"),
new Person("Jane"),
new Person("John"),
new Person("Jane"),
new Person("John")
);
Map<String, Long> countMap = personList.stream()
.collect(Collectors.groupingBy(Person::getName, Collectors.counting()));
System.out.println(countMap);
}
}
```
运行以上代码,输出结果为 `{Jane=2, John=3}`。其中,key 表示字段的值,value 表示该值在对象中出现的次数。
在代码中,我们使用 `Collectors.groupingBy()` 方法将对象按照字段的值进行分组,然后使用 `Collectors.counting()` 方法对每个分组中的对象进行计数。最后,我们得到一个 Map,其中包含了每个值及其对应的出现次数。
阅读全文