使用entrySet时出现ConcurrentModificationException

时间:2016-07-06 12:21:35

标签: java hashmap

我是学生,所以我不是专家。我正在尝试执行以下操作:

我有一个带有一些键(String)和值(String [])的HashMap。我还有一个包含所有同义词的file.txt。我试图将同义词添加到我的HashMaps中,并获取现有Key的值(同义词的同义词)。

这是我的HashMap:

HashMap<String, String[]> qA = new HashMap<String, String[]>();

这是我的代码:

for (Map.Entry<String, String[]> entry : getqA().entrySet()) {
        for (String synonym : getSynonym(entry.getKey()))
            addWord(synonym.toLowerCase(), entry.getValue());
    }

方法getqA返回HashMap。方法addWord几乎与nameOfTheHashMap.put();

相同

方法getSynonym(String word):

public String[] getSynonym(String word) {

    for (String[] list : abc)
        for (String wordIntoList : list)
            if (wordIntoList.toLowerCase().equals(word.toLowerCase().replace(" ", "")))
                return list;

    return new String[] {};
}

“abc”是ArrayList<String[]>(包含file.txt),它在每个索引上都包含一行。由具有相同含义的sinonyms形成一条线。

如何修复错误ConcurrentModificationException?正如我所说,我不是专家,这是我学习Java的第一年。我试图查看其他主题,但我无法解决问题。

提前致谢!

根据要求,我的addWord方法:

    public static void addWord(String key, String[] values) {
    qA.put(key, values);
}

0 个答案:

没有答案