quando rimuovere il secondo ultimo elemento non c'è ConcurrentModificationExceptionJava ConcurrentModificationException
List<String> myList1 = new ArrayList<String>();
Collections.addAll(myList1, "str1","str2","str3","str4","str5");
for(String element : myList1){//no ConcurrentModificationException here
if(element.equalsIgnoreCase("str4"))
myList1.remove("str4");
}
System.out.println(myList1);
Ma quando rimuova altri elementi v'è un ConcurrentModificationException
List<String> myList2 = new ArrayList<String>();
Collections.addAll(myList2, "str1","str2","str3","str4","str5");
for(String element : myList2){//ConcurrentModificationException here
if(element.equalsIgnoreCase("str1"))
myList2.remove("str1");
}
System.out.println(myList2);
qual è la ragione?
Si prega di leggere attentamente la domanda ragazzi. – user1947415
Nel tuo primo pezzo di codice c'è anche l'errore "Exception in thread" main "java.util.ConcurrentModificationException". Non è possibile aggiornare la stessa raccolta quando si sta iterando su di essa. –
Perché non ho ricevuto l'eccezione? Hai provato? – user1947415