在Java中,可以使用Set集合来存储不重复的元素。Set接口的实现类有很多,如HashSet、LinkedHashSet和TreeSet等。这里以HashSet为例,介绍如何实现去重。
假设我们有一个类Person
,包含name
和age
两个属性:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// getter和setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
现在,我们想要去除一个Person
对象列表中的重复元素,可以使用HashSet来实现:
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> personList = new ArrayList<>();
personList.add(new Person("张三", 20));
personList.add(new Person("李四", 25));
personList.add(new Person("张三", 20)); // 重复的元素
personList.add(new Person("王五", 30));
Set<Person> personSet = new HashSet<>(personList);
List<Person> uniquePersonList = new ArrayList<>(personSet);
for (Person person : uniquePersonList) {
System.out.println(person.getName() + " - " + person.getAge());
}
}
}
在这个例子中,我们首先创建了一个Person
对象列表personList
,然后使用HashSet的构造函数将列表转换为一个Set集合personSet
。由于HashSet不允许重复元素,所以重复的Person
对象会被自动去除。最后,我们将personSet
转换回ArrayList
,得到一个去除重复元素后的列表uniquePersonList
。