javalist集合中对象去重
时间: 2023-11-22 20:57:26 浏览: 78
要在Java中对集合中的对象进行去重,需要满足两个条件:
1. 集合中的对象必须实现equals方法和hashCode方法。
2. 使用HashSet或LinkedHashSet等不允许重复元素的集合类来存储对象。
下面是一个例子:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
List<Person> list = new ArrayList<>();
list.add(new Person("Alice", 20));
list.add(new Person("Bob", 25));
list.add(new Person("Alice", 20));
list.add(new Person("Charlie", 30));
list.add(new Person("Bob", 25));
Set<Person> set = new HashSet<>(list);
list.clear();
list.addAll(set);
System.out.println(list); // 输出 [Alice:20, Bob:25, Charlie:30]
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && name.equals(person.name);
}
@Override
public int hashCode() {
return name.hashCode() + age;
}
@Override
public String toString() {
return name + ":" + age;
}
}
```
在此例中,Person类实现了equals和hashCode方法,并且使用HashSet来去重。注意,最后需要将去重后的集合重新放回原始的List中。
阅读全文