674 Stimmen

Aufruf von remove in der foreach-Schleife in Java

Ist es in Java legal, remove für eine Sammlung aufzurufen, wenn man die Sammlung mit einer foreach-Schleife durchläuft? Zum Beispiel:

List<String> names = ....
for (String name : names) {
   // Do something
   names.remove(name).
}

Ist es außerdem legal, Elemente zu entfernen, die noch nicht überarbeitet wurden? Zum Beispiel,

//Assume that the names list as duplicate entries
List<String> names = ....
for (String name : names) {
    // Do something
    while (names.remove(name));
}

34 Stimmen

Kein guter Plan. Nur weil die Sprache es bei einem bestimmten Lauf toleriert, ist es noch lange keine gute Idee.

0 Stimmen

Sie müssen mich in einer schlechten Stimmung erwischt haben, aber mir scheint, die Antwort auf diese Frage kommt direkt aus der foreach-Dokumentation.

2 Stimmen

-5voto

ThmHarsh Punkte 583

Verwenden Sie

.remove() von Interator oder

Utilice

CopyOnWriteArrayList

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X