Java 使用HashSet.add()的自己的实现
我正在使用哈希集向哈希集添加唯一用户。这些用户经常从在线源进行更新,当它从那里读入时,每次都会得到一个新对象,因此所有用户都会被再次添加 我的用户类中有一个UserID变量,我想使用它将用户添加到HashSet并确保唯一性Java 使用HashSet.add()的自己的实现,java,performance,data-structures,hash,hashset,Java,Performance,Data Structures,Hash,Hashset,我正在使用哈希集向哈希集添加唯一用户。这些用户经常从在线源进行更新,当它从那里读入时,每次都会得到一个新对象,因此所有用户都会被再次添加 我的用户类中有一个UserID变量,我想使用它将用户添加到HashSet并确保唯一性 private HashSet<User> userHashSet = new HashSet<User>(); userHashSet.add(user); //based on the users id it will either add or
private HashSet<User> userHashSet = new HashSet<User>();
userHashSet.add(user);
//based on the users id it will either add or not
private HashSet userHashSet=new HashSet();
userHashSet.add(用户);
//根据用户id,它将添加或不添加
我希望这样做不会降低效率,最好只使用一个HashSet,您应该在
User
类中实现equals
和hashCode
方法
例如:
@Override
public int hashCode() {
return getUserId().hashCode();
}
@Override
public boolean equals(Object obj) {
return obj instanceof User &&
getUserId().equals(((User) obj).getUserId());
}
您应该在
User
类中实现equals
和hashCode
方法
例如:
@Override
public int hashCode() {
return getUserId().hashCode();
}
@Override
public boolean equals(Object obj) {
return obj instanceof User &&
getUserId().equals(((User) obj).getUserId());
}
您需要在
User
类中实现hashCode
和equals
方法。只要您正确地实现了这两种方法,您将在哈希集中获得唯一的条目
关于如何正确实现这些方法的文章很多(例如),但最简单的方法是让IDE自动生成这些方法,或者使用Apache Commons helpers。您需要在用户类中实现hashCode
和equals
方法。只要您正确地实现了这两种方法,您将在哈希集中获得唯一的条目
关于如何正确实现这些方法的文章很多(例如),但最简单的方法是让IDE自动生成这些方法,或者使用Apache Commons helpers。这正是解决方案!谢谢,这正是解决办法!非常感谢。