Oft möchten wir bestimmte Elemente aus einer Sammlung löschen. Einige mögen das schreiben.
Kopieren Sie den Codecode wie folgt:
öffentliche Nichtigkeitsregelung(Listenliste){
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
list.remove(str);
}
}
}
Sobald diese Schreibmethode ausgeführt wird, wird die folgende Ausnahme gemeldet:
Ausnahme im Thread „main“ java.util.ConcurrentModificationException
bei java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
Denn die Elemente der Liste können nicht gelöscht werden, während sie sich in der Schleife befindet. Später habe ich dies getan, eine sehr dumme Methode: Erstellen Sie eine Liste, um die zu löschenden Elemente gezielt zu speichern. Verwenden Sie nach der Schleife die List.removeAll-Methode, um die Elemente zu löschen. Der Code lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
öffentliche Nichtigkeitsregelung(Listenliste){
Liste entfernenList= new ArrayList();
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
removeList.add(str);
}
}
list.removeAll(removeList);
}
Dies kann zwar das Problem lösen, aber die Methode ist zu umständlich. Tatsächlich kann es eine einfachere und effizientere Methode geben, nämlich die Verwendung der Iterator.remove-Methode wie folgt:
Kopieren Sie den Codecode wie folgt:
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
it.remove();
}
}
Je besser Sie also die Grundlagen von Java kennen, desto einfacher wird Ihr Code. Im Gegenteil, wenn Ihr Code besonders komplex ist, muss etwas mit der Methode oder dem Design nicht stimmen.