Ganz kurze Frage zur erweiterten For-Schleife

Hey,

danke... also, das konnt ich nachvollziehen mit dem Entfernen VOR der Schleife, aber das da im Code ist ja keine Schleife, die rückwärts läuft?
 
Java:
for(int i = list.size() -1; i <= 0; i--){
   //mach irgendwas mit der Liste
}

Gruß

Sascha
 
Danke, jetzt klappts. Nur bei der Bedingung müsste i >= 0 (größer gleich) stehen.
Aber so richtig verstehen wieso man es rückwärts macht, tue ich leider immernoch nicht. :(
 
Ups, da hab ich mich vertippt. ;-)

Wenn du vorwärts durch die Liste läufst und in der Schleife ein Element löscht, verringert sich einmal der Index der Liste, d.h. man muss aufpassen, dass die Schleife nicht zu weit läuft. Zum anderen werden die Indizes der Liste neu gesetzt, wenn du ein Element löschst. D.h. Angenommen du löschst das Element an Stelle 5, rückt das 6. Element an diese Stelle. Also müsstest du diese Stelle nochmal bearbeiten, das passiert aber nicht, da die Schleife beim nächsten Durchlauf den Zähler erhöht.

Wenn du Rückwärts durchläufst, passiert das ganze nicht, da du zum Anfang der Liste läufst und der Anfang bleibt immer der Anfang. Mit dem Index hast du auch keine Probleme, da sich nur der Index bei denen Elementen ändert, die man schon kontrolliert hat.

Gruß

Sascha
 

Neue Beiträge

Zurück