我有一个类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/