Merchant クラスの hashCode および equals メソッドをオーバーライドできます
@Override
public int hashCode() {
return name.hashCode();
}
@Override
// This really depends on if you want to compare only objects or names too.
// The following compares names too.
public boolean equals(final Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final Merchant other = (Merchant) obj;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
次に、Merchant オブジェクトを Set コレクションに格納します (検索を高速化するため)。新しいマーチャントの名前がセットに既に存在するかどうかを確認するための適切なチェックを追加します。
Set<Merchant> merchants = new HashSet<>()
// Populated the merchants
今チェック
// if merchant names are unique
merchants.contains(newMerchantObj)
PS : マーチャントの一意の名前を維持する必要があるため、ハッシュコードをマーチャント名のハッシュコードでオーバーライドすることのみをお勧めします。