使用varargs和地图

时间:2015-06-25 11:21:11

标签: java

我想将一个对象添加到地图中,但它会出错。也许我必须使用列表,但有getname()方法所以我使用map。我必须检查它是否有重复的值,如果找到则抛出异常

public class HandleApplications {

    Map<String,Name> names = new HashMap<>();

    public void addNames(String... names) throws Exception{
        Name c = new Name(names);

        if(names.containsValue(names)){
            throw new ApplicationException();
        }
         names.put(names,c) //this line gives error
    }

    public Name getName(String name) {
        return names.get(name);
    }
}

1 个答案:

答案 0 :(得分:1)

我认为你需要的是 -

public void addNames(String... names) throws Exception {
    for (String s : names) {
        Name c = new Name(s);
        this.names.put(s, c);
    }
}

考虑更改变量名称。由于变量名相同,我使用this.names来引用地图。