ConcurrentModificationException异常的直接翻译:同时改变异常~~
从字面意思可以看出:这是同一时间有两个变化发生;
下面这段代码就会出现这个错误:
for (Player player : playList) {
if (playList.get(i).getMatchPlayerId() == 1) {
break;
} else if (playList.get(i).getMatchPlayerId() == 2) {
playList.add(player);
}
}
Java Collection classes are fail-fast which means that if the Collection will be changed while some thread is traversing over it using iterator, the iterator.next() will throw a
ConcurrentModificationException
.This situation can come in case of multithreaded as well as single threaded environment
之所以 foreach
循环中提示这个异常,是因为在for循环中,我们在循环体内调用了 .add()
方法,改变了循环数组的大小。