过滤相同对象 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 中过滤相同对象。如果有任何疑问,欢迎随时向我提问。