温馨提示×

Java set去重怎样达成

小樊
82
2024-11-27 16:00:17
栏目: 编程语言

在Java中,可以使用Set集合来存储不重复的元素。Set接口的实现类有很多,如HashSet、LinkedHashSet和TreeSet等。这里以HashSet为例,介绍如何实现去重。

假设我们有一个类Person,包含nameage两个属性:

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

0