Java 获取一个list中某一个字段相同值的数量
时间: 2024-03-16 09:47:03 浏览: 146
Java判断List中相同值元素的个数实例
在Java中,可以使用Java 8引入的流(Stream)和Collectors工具类来实现这个功能。假设我们有一个包含对象的列表,每个对象都有一个名为key的字段,我们想要计算key字段相同值的数量,可以按照以下方式实现:
```java
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 假设我们有以下对象的列表
List<MyObject> list = Arrays.asList(new MyObject("a"), new MyObject("b"),
new MyObject("a"), new MyObject("c"),
new MyObject("b"), new MyObject("b"));
// 使用流和Collectors工具类统计key字段相同值的数量
Map<String, Long> count = list.stream()
.collect(Collectors.groupingBy(MyObject::getKey, Collectors.counting()));
// 输出结果
System.out.println(count);
}
}
class MyObject {
private String key;
public MyObject(String key) {
this.key = key;
}
public String getKey() {
return key;
}
}
```
这个结果说明,列表中有 2 个 key 字段的值为 'a',3 个 key 字段的值为 'b',1 个 key 字段的值为 'c'。
如果你想要返回key字段相同值的数量列表,可以将上面的代码改成:
```java
List<Long> count = list.stream()
.collect(Collectors.groupingBy(MyObject::getKey, Collectors.counting()))
.values()
.stream()
.collect(Collectors.toList());
```
这个结果说明,列表中有 2 个 key 字段的值为 'a',3 个 key 字段的值为 'b',1 个 key 字段的值为 'c'。
阅读全文