java怎么用stream()指定List实体类的某个字段去重
时间: 2024-06-15 20:06:09 浏览: 15
在Java中,可以使用Stream API来对List实体类的某个字段进行去重操作。具体步骤如下:
1. 首先,确保你的实体类正确定义了相应的字段和对应的getter方法。
2. 将List转换为Stream对象,可以使用List的stream()方法。
3. 使用Stream的distinct()方法,该方法会根据对象的equals()方法进行去重操作。
4. 如果你想根据某个字段进行去重,可以使用Stream的map()方法将对象映射为该字段的值,然后再使用distinct()方法进行去重。
下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 创建一个包含实体类对象的List
List<Person> personList = new ArrayList<>();
personList.add(new Person("Alice", 20));
personList.add(new Person("Bob", 25));
personList.add(new Person("Alice", 20));
personList.add(new Person("Charlie", 30));
// 使用Stream对List进行去重操作
List<String> distinctNames = personList.stream()
.map(Person::getName) // 映射为姓名字段
.distinct() // 去重
.toList(); // 转换为List
// 输出去重后的姓名列表
System.out.println(distinctNames);
}
static 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;
}
}
}
```
运行以上代码,输出结果为:[Alice, Bob, Charlie],即去重后的姓名列表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)