如何防止重复的名称?

时间:2013-01-01 13:55:47

标签: java spring-mvc

可以任何正文解释如何停止重复的名称。如果任何重复的名称给出,那么我需要显示相应的错误消息,如“名称已经存在”。所以应用程序包括类merchant.java,MerchantDao.java,MerchantImpl。 java class.so我需要在MerchantImpl.java类中实现该方法,该方法包含停止重复商家名称的逻辑。

Merchat.java

public class Merchant
 {
 private String merchant Name;
etc
 } 

 MerchantImpl.java
  public class MerchantImpl
  {
need to define a method to prevent duplicate names;
     }

4 个答案:

答案 0 :(得分:2)

您可以覆盖hashCode并等于Merchant类的方法

@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中是否已存在新的商家名称。

Set<Merchant> merchants = new HashSet<>()
// Populated the merchants

现在检查

// if merchant names are unique
merchants.contains(newMerchantObj)

P.S:我只建议使用商家名称的哈希码覆盖哈希码,因为您需要为商家维护唯一的名称。

答案 1 :(得分:0)

将所有名称保存在集合中,并在给出新名称时检查名称是否已在集合中。代码可能看起来像这样(您可能不需要新类):

class NameChecker {
    Set<String> names = new HashSet<String>();

    public void addName(String name) {
        if (names.contains(name)) {
            //print message
        } else {
            names.add(name);
            // do what you have to with new names.
        }
    }
}

答案 2 :(得分:0)

将名称存储在集合中。遗憾的是,您没有提供显示如何获取新名称的代码,但以下代码示例可以帮助您:

//定义 Set names = new HashSet();

//代码中获取新名称的其他位置: if(names.contains(name)){     //打印错误消息 } names.add(名称); //添加新名称。

答案 3 :(得分:0)

搜索数据库中的输入名称(如果存在),然后将错误插入数据库中。

if(name exist in database)
error
else 
add name in database.

实际代码取决于用于维护数据库的数据结构。

if(name_list.contains(name))
error
else 
name_list.add(name);