Java HashSet 重复项比较

标签 java list duplicates hashset

我有一个类Person,其中包含String firstName、lastName。我想将此类的实例插入 List 中,但我不想插入重复项。

如何使用 HashSet 以便它使用 firstName+lastName 之类的内容来找出重复项?

最佳答案

您的 Person 类中需要一个 equals() 和一个 hashCode() 方法。

equals() 很简单,对于 hashCode() 最简单的解决方案是:

public int hashCode() {
  return Arrays.hashCode( new Object[] { firstName, lastName } );
}

尽管如果您的 Person 对象是不可变的(如果您将其放入 HashSet,则应该如此),您应该缓存此值。

关于Java HashSet 重复项比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5186081/

相关文章:

如果与时间序列中的前一个相同,则删除相同的值

java - 使用 Azure 媒体服务获取访问 token 时遇到问题

java - 使用外观设计模式|缺点/解决方案/建议

python - 按第一项对嵌套列表进行排序——itemgetter 没有做到这一点

java - 如何制作具有三个参数的 Java Hashmap

r - 如果 value 中的 a 值等于 R 中的上一行,则删除整行

Java Scanner 类读取字符串

java - 无法在 Java 中形成带有两个问号的类型的表达式

java - GlassFish 4 和 Java 邮件 : PKIX path building failed

python - 如何从文件中读取并将其作为整数放入列表中? Python