过滤相同对象 Java 实现方法

1. 概述

在 Java 中,我们可以通过重写对象的 equals() 和 hashCode() 方法来判断两个对象是否相同。如果两个对象的 equals() 方法返回 true,并且它们的 hashCode() 方法返回的哈希值相同,则可以认为这两个对象相同。

2. 流程

下面是实现过滤相同对象的流程:

步骤 操作
1 创建一个类,重写 equals() 和 hashCode() 方法
2 创建一个 List 存储对象
3 使用 Set 来过滤重复对象

3. 代码实现

步骤一:创建一个类,重写 equals() 和 hashCode() 方法

public class User {
    private String name;
    private int age;

    // 重写 equals() 方法
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        User user = (User) o;
        return age == user.age &&
                Objects.equals(name, user.name);
    }

    // 重写 hashCode() 方法
    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

步骤二:创建一个 List 存储对象

List<User> userList = new ArrayList<>();
userList.add(new User("Alice", 25));
userList.add(new User("Bob", 30));
userList.add(new User("Alice", 25));

步骤三:使用 Set 来过滤重复对象

Set<User> userSet = new HashSet<>(userList);
System.out.println(userSet);

4. 关系图

erDiagram
    User {
        String name
        int age
    }

通过以上代码和流程,你可以实现过滤相同对象的功能。记得在重写 equals() 和 hashCode() 方法时,保证它们的一致性,即如果两个对象相等,则它们的哈希值也应该相等。希望这篇文章对你有所帮助,让你更好地理解如何在 Java 中过滤相同对象。如果有任何疑问,欢迎随时向我提问。