java如何过滤一个List中的重复项,List的对象是自定义类
时间: 2024-02-25 22:51:14 浏览: 34
你可以通过以下步骤来过滤一个List中的重复项:
1. 在自定义类中重写 `equals()` 和 `hashCode()` 方法,以便可以比较对象的相等性。
2. 使用一个Set集合来存储不重复的对象,因为Set集合不允许重复元素。
3. 遍历List中的每个元素,将其添加到Set中。
4. 创建一个新List,将Set中的元素添加到新List中。
下面是一个示例代码:
```java
public class Person {
private String name;
private int age;
// 构造方法、getter和setter方法
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (!(obj instanceof Person)) {
return false;
}
Person person = (Person) obj;
return Objects.equals(name, person.name) && age == person.age;
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
// 过滤重复元素
List<Person> persons = new ArrayList<>();
// 添加元素到persons中
Set<Person> personSet = new HashSet<>(persons);
List<Person> uniquePersons = new ArrayList<>(personSet);
```
这样,`uniquePersons` 中就只包含不重复的元素了。
相关推荐
![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)