自前のPOJOクラスをHashSetで扱いたい
自前のPOJOクラスをHashSet
の値として重複を除きつつコレクションとして管理したい。
HashSet
で正しく扱うためには、モデルクラスのequals()
メソッドとhashCode()
メソッドを実装する必要がある。
自前で実装してもよいが、apche commonsライブラリを使用すれば以下のように簡単に実装ができる。
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}