Java Listen-Elemente an Stelle x bis unendlich ausgeben?
Hallo möchte in Java von einer Liste alle Element ab der Stelle x ausgeben. das heißt bei der Liste ["Apfel", "Zitrone", "Birne", "Banane"] soll zum Beispiel alles ab "Zitrone" (Index 1) ausgegeben werden -> "Zitrone", "Birne", Banane". Als Vergleich: In Python kann man liste[1:] verwenden. Gibt es sowas auch in Java?
2 Antworten
Nimm einfach eine for-Schleife, die ab dem gewünschten Index startet.
for (int index = 1; index < list.size(); ++index) {
System.out.println(list.get(index));
}
Stelle vorher noch sicher, dass die Liste überhaupt so viele Elemente hat, wie erwartet.
Gewohnheit, von älteren Zeiten.
Bei der Preinkrementation wird der Wert erhöht und zugleich zurückgegeben.
value = value + 1
return value
Bei der Postinkrementation ist ein Schritt mehr notwendig.
oldValue = value
value = value + 1
return oldValue
Im obigen Fall (bei der Schleife) wird es keinen Unterschied machen, denn moderne Compiler optimieren solche Ausdrücke selbst schon weg.
Ah, Performanceoptimierung, das macht Sinn.
Finde es immer wieder interessant zu sehen, was früher alles anders gemacht wurde, um das Programm performant zu halten und den Speicherverbrauch zu reduzieren :)
Wenn du einen Stern abstauben willst, kannst du die Antwort bei meiner Umfrage Copy-Pasten. Geholfen hast du mir damit ja bereits, jetzt weiß ich nämlich endlich, warum viele ältere Programmierer (unter anderem auch der Großteil meiner Professoren) ++i hernehmen. ^^
Achja, noch eine Frage:
Du sagst Compiler optimieren das...
Interpreter, wie zum Beispiel bei JavaScript, auch?
Um ganz korrekt zu sein, müsste man je Compiler / Interpreter nochmal konkret nachschauen, was passiert. Aber du kannst mit hoher Wahrscheinlichkeit davon ausgehen, dass auch bei JS-Interpretern eine entsprechende Optimierung stattfindet.
Wenn deine Liste eine ArrayList ist, kannst du dafür die
.subList()
Methode verwenden.
Du kannst der Methode zwei Parameter übergeben. Einen Von-Index und einen Bis-Index. Diese legen fest, welchen Bereich aus dem Originalen Array du haben willst.
In deinem Fall wäre der Von-Index 1, da du alles ab Index 1 haben willst.
Hier findest du gute Beispiele:
http://www.geeksforgeeks.org/arraylist-sublist-method-in-java-with-examples/amp/
Warum ++index, anstatt index++?
Hab dazu auch gleich eine Umfrage gestellt, hast sie vermutlich schon gesehen.