Wie löse ich ConcurrentModificationException
aus dem folgenden Programm. Ich brauche eine Liste, wo das erste Element ist "Znk"
, und dann die Sortierung nach ihm aufgeführt.Gleichzeitiger Änderungsausnahme
Ich verstehe, ich bekomme das, weil ich in der gleichen Iteration hinzufügen und entfernen. Aber wie löse ich das und bekomme die gewünschte Ausgabe.
public class ListSwapIndex {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> swapIndex = new ArrayList<String>();
ArrayList<String> swapIndextemp = new ArrayList<String>();
swapIndex.add("Ank");
swapIndex.add("Znk");
swapIndex.add("Bnk");
swapIndex.add("Dnk");
swapIndex.add("Enk");
swapIndex.add("Lnk");
for (String string : swapIndex) {
if(string.equals("Znk")){
swapIndextemp.add(string);
swapIndex.remove(string);
}
}
swapIndextemp.addAll(swapIndex);
System.out.println(swapIndextemp);
}
}
Nein, das liegt daran, dass Sie das Array gleichzeitig ändern. Verwenden Sie stattdessen einen Vektor oder eine synchronisierte Arraylist. – Ioan
Siehe [dies] (http://stackoverflow.com/questions/18448671/how-to-avoid-concurrentmodificationexception-while-removing-elements-from-arr) möglich duplizieren "Kann nicht mit erweiterten For-Schleife archivieren" – malatesh