java - 如何检查Map是否有重复的key?

标签 java dictionary

好的,这就是我必须做的:

将传递的 List 拆分为单独的行,然后使用分隔符拆分这些行,然后将这些部分添加到 Map 中。

我的代码:

public GrammarSolver(List<String> rules) {
    if(rules == null || rules.size() == 0) {
        throw new IllegalArgumentException();
    }
    Map<String, String> rulesMap = new HashMap<String, String>();
    Iterator<String> i = rules.iterator();
    while(i.hasNext()) {
        String rule = i.next(); // store a line from 'rules' List
        String[] parts = rule.split("::="); // split the line into non-terminal and terminal
        rulesMap.put(parts[0], parts[1]); // Put the two parts into the map
    }
    // TODO: exception when duplicate key in map
}

一切正常,但现在我的作业表明,如果任何行的键重复(出现多次),我需要抛出异常。

据我了解,键只能是唯一的,那么我在这里错过了什么?

最佳答案

一旦添加到HashMap,键就是唯一的,但是您可以通过使用 containsKey(..) 查询 HashMap 来知道您要添加的下一个是否已经存在。或get(..)方法。

关于java - 如何检查Map是否有重复的key?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554217/

相关文章:

java - Gradle 配置提供了子项目构建中忽略的依赖关系

java - OnetoOne 关系案例中的唯一行。如何防止重复?

arrays - (整数)作为结构数组的 slice 索引

python-2.7 - 检查 Python 字典中的所有值时的意外结果为 None

Matlab设置containers.Map的所有值

python - 在字典中填充字典

java - 放大 Slick2D

java - 如何获取CIELAB图像a轴和b轴上的像素值

java - 如何使用 PrintWriter 测试方法?

c# - 基于字典排序 IEnumerable<T> 对象