java list去重 根据两个参数
时间: 2023-09-01 12:10:25 浏览: 104
如果你需要根据两个参数进行List去重,你可以通过自定义一个类来实现。假设你的类名为`Person`,有两个属性`name`和`age`,你可以按照以下步骤实现List去重:
1. 在`Person`类中重写`equals()`和`hashCode()`方法,使得两个`Person`对象的`name`和`age`都相等时被视为相等。
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 重写equals方法
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof Person)) {
return false;
}
Person p = (Person) obj;
return Objects.equals(name, p.name) && age == p.age;
}
// 重写hashCode方法
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
```
2. 在需要去重的List中使用`HashSet`去重。`HashSet`底层使用哈希表实现,可以快速去重。
```java
List<Person> list = new ArrayList<>();
// 添加一些Person对象到list中
Set<Person> set = new HashSet<>(list);
list.clear();
list.addAll(set);
```
这样,`list`中的`Person`对象就根据`name`和`age`去重了。
阅读全文