【发布时间】:2018-05-07 20:42:17
【问题描述】:
我是 Java 初学者,但我对一项任务有疑问。
我正在尝试向 ArrayList 添加一个元素,但有一个异常:Exception in thread "main" java.util.ConcurrentModificationException
public Anagrams (String path) throws FileNotFoundException {
List<String> tmpList = new ArrayList<>();
Scanner scan = new Scanner(new File(path));
while(scan.hasNext()) {
tmpList.add(scan.next());
}
scan.close();
tmpList.forEach(word -> {
if(anList.isEmpty()) {
ArrayList<String> tmp1 = new ArrayList<String>();
tmp1.add(word);
anList.add(tmp1);
}
else {
anList.forEach(list -> {
if (isAnagram(word, list.get(0))) {
list.add(word);
} else {
ArrayList<String> tmp2 = new ArrayList<String>();
tmp2.add(word);
anList.add(tmp2);
}
});
}
});
}
我正在从一个 txt 文件中收集单词并将它们分成不同的数组,无论它们是否是字谜。我知道在迭代集合时我无法修改集合 - 但我不知道如何避免此异常。请您帮帮我吗?
【问题讨论】:
标签: java arraylist iterator concurrentmodification