Ungeeigneter Schleifentyp

Aus Programmieren-Wiki
🚧 Diese Seite befindet sich in Bearbeitung 🚧
🤓 Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 1 annotiert und ab Blatt 2 abgezogen wird. 🤓

Beschreibung

Die Java-API bietet viele Kontrollstrukturen. Darunter viele verschiedene Schleifentypen. Je nach dem wie wir über eine Collection an Objekten iterieren wollen, eigenet sich die ein oder andere Schleife mehr als andere.

Es ist Beispielsweise unnütz viel Schreib- und Lesaufwand über einen Index zu iterieren um ein Objekt zu referenzieren, statt direkt über alle Objekte zu iterieren. Um den richtigen Schleifentyp zu wählen, sollten zunächst folgende Fragen gestellt werden:

  • Brauche ich einen Index oder nur ein Objekt? (Arrays)
  • Brauche ich einen Key oder einen Value? (Maps)
  • Muss ich wirklich über alle Indizes/Objekte iterieren?
  • Brauche ich überhaupt eine Schleife oder lässt sich mein Problem anders lösen?


Negativbeispiel

Person[] people = new Person[10];
// We imagine this array is filled after this point
for (int i = 0; i < people.length; i++) {
	System.out.print(people[i].getName());
}

Hier iterieren wir über die Indizes des Arrays obwohl wir nur die Objekte referenzieren wollen.

Positivbeispiel

Person[] people = new Person[10];
// We imagine this array is filled after this point
for (Person person : people) {
	System.out.print(person.getName());
}

Hier benutzen wir einen sogenannten "enhanced-for-loop" der Java API. Dieser iteriert direkt über die Objekte, ohne erst über die Indizes zu iterieren, was den Code nicht nur besser lesbar, sondern auch kompakter und einfacher verständlich macht.


Wenn du diese Seite interessant fandest, findest du hier noch mehr Seite(n) dazu:
Komplexität