Collection-Massenoperationen statt Mutationsschleifen
removeIf(), replaceAll() und List.sort() für direkte Transformationen von Collections verwenden.
Code-Vergleich
✕ Iterator mutation loop
for (Iterator<Order> it = orders.iterator(); it.hasNext();) {
if (it.next().cancelled()) {
it.remove();
}
}
✓ Java 8+
orders.removeIf(Order::cancelled);
Problem mit diesem Code entdeckt? Sag uns Bescheid.
Warum der moderne Weg gewinnt
Klare Absicht
Die Operation beschreibt, was geändert wird, und nicht, wie darüber iteriert wird.
Sicherere Mutation
Vermeidet manuelle Regeln für das Entfernen per Iterator.
Weniger Code
Häufige Transformationen werden zu einem einzigen Ausdruck.
Alter Ansatz
Manuelles Entfernen per Iterator
Moderner Ansatz
Collection.removeIf()
Seit JDK
8
Schwierigkeitsgrad
Einsteiger
JDK-Unterstützung
Collection-Massenoperationen statt Mutationsschleifen
Verfügbar
Verfügbar seit JDK 8 (März 2014)
Wie es funktioniert
Moderne Collection-Interfaces stellen häufige Mutationen direkt bereit. Methoden wie removeIf(), replaceAll() und List.sort() ersetzen Schleifen mit aufwendiger Kontrolllogik durch Operationen, die die beabsichtigte Transformation ausdrücken.
Zugehörige Dokumentation
Beweis