您可以覆盖 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:我只建议用商家名称的哈希码覆盖哈希码,因为您需要为商家维护唯一的名称。