Java HashSet重复比较

Ver*_*gen 2 java list duplicates hashset

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

我如何使用HashSet它使用类似的东西firstName+lastName来找出重复?

biz*_*lop 10

你班上需要一个equals()和一个hashCode()方法Person.

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

public int hashCode() {
  return Arrays.hashCode( new Object[] { firstName, lastName } );
}
Run Code Online (Sandbox Code Playgroud)

虽然如果你的Person对象是不可变的(因为它应该是,如果你把它放在一个HashSet中),你应该缓存这个值.