我正在使用哈希集将唯一的用户添加到哈希集中。这些用户经常从在线源更新,当它从那里读取数据时,每次都会获得一个新对象,因此所有用户都会再次添加。
我的用户类中有一个 UserID 变量,并希望使用它来将用户添加到 HashSet 并确保唯一性。
private HashSet<User> userHashSet = new HashSet<User>();
userHashSet.add(user);
//based on the users id it will either add or not
我想在不损失效率的情况下做到这一点,最好只有一个 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());
}
关于java - 使用自己的 HashSet.add() 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31443640/