java - 使用自己的 HashSet.add() 实现

标签 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 not

我想在不损失效率的情况下做到这一点,最好只有一个 HashSet

最佳答案

您应该在 User 类中实现 equalshashCode 方法。

举个例子:

@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/

相关文章:

java - cvc-complex-type.2.4.a 从 faces-config.xml 中的元素工厂开始发现无效内容

java - 如何在 Hibernate 中将字符串映射到数据库序列

c# - 将 MIDI 事件添加到时钟 - Java

performance - 知道有什么工具可以监控亚马逊 ec2 实例的真实性能吗?

go - 插入一个简单的单链表

java - 多个字段的短语匹配

python - 为什么函数调用的顺序会影响运行时

linux - 用户模式与内核模式的 RAM 性能比较

haskell - 功能队列类型

data-structures - 为什么二叉堆一定是完全二叉树?