0

ConcurrentModificationExceptionマップのコンテンツを反復処理すると取得します

    for (String sourceKey : sMap.getContent().keySet()) {

        List<String> sourceValues = sMap.getValues(sourceKey);
        List<String> targetValues = tMap.getValues(sourceKey);

        if (areMultiple(sourceValues)) {
        ....
    }

sMap.getContent()を返しますがMap<String, List<String>>、そのうちキーのみを取得しています。

マップのコンテンツの変更は行われないことに注意してください。ここで繰り返しているだけです。

私はここで何が間違っているのですか?例外がスローされた場合の状況を修正するにはどうすればよいですか?

4

1 に答える 1

2

これは、反復されている基になるコレクションが Iterator 自体以外によって変更された場合に発生します。

プレーンな HashMap の代わりに ConcurrentHashMap を使用してみてください

于 2013-03-11T19:16:58.533 に答える