當我執行下面的代碼,我得到ConcurrentModificationException的的Java:ConcurrentModificationException的同時遍歷列表
Collection<String> myCollection = Collections.synchronizedList(new ArrayList<String>(10));
myCollection.add("123");
myCollection.add("456");
myCollection.add("789");
for (Iterator it = myCollection.iterator(); it.hasNext();) {
String myObject = (String)it.next();
System.out.println(myObject);
myCollection.remove(myObject);
//it.remove();
}
爲什麼會出現異常,即使我使用Collections.synchronizedList?
當我改變MyCollection的到
ConcurrentLinkedQueue<String> myCollection = new ConcurrentLinkedQueue<String>();
我沒有得到例外。
java.util.concurrent中的ConcurrentLinkedQueue如何與Collections.synchronizedList不同?
可能的重複[遍歷集合,避免ConcurrentModificationException在循環中刪除時](http://stackoverflow.com/questions/223918/iterating-through-a-collection-avoiding-concurrentmodificationexception-when-re) – Raedwald