Hallo.
Mich würde mal interessieren, was die elegantere Lösung für das iterieren eines Vectors ist:
for (Iterator<Vector> iter = v.iterator(); iter.hasNext(){}
ODER
for (int i = 0; i < v.size(); i++){}
MfG
DAB268
Hallo.
Mich würde mal interessieren, was die elegantere Lösung für das iterieren eines Vectors ist:
for (Iterator<Vector> iter = v.iterator(); iter.hasNext(){}
ODER
for (int i = 0; i < v.size(); i++){}
MfG
DAB268
Es kommt drauf an was du machen willst:Code:Vector<T> v;
Wenn du den Inhalt des Vectors während dem Iterieren verändern willst (Elemente löschen/hinzufügen) dann musst du die Variante mit dem Iterator nehmen.
Sonst gibts die Variantenwenn du den Index des aktuellen Elements brauchst oderCode:for (int i = 0; i < v.size(); i++) { // do stuff using the current index and element }wenn du den Index nicht brauchst.Code:for (T elem : v) { // do stuff using the current element }
HTH
--jeebee
Ja, dazu brauchst du keinen Iterator.
noch eleganter finde ich es ja, wenn man den Vektor rückwärts durchläuft. Das hat zwei Vorteile:
1) man muss nicht bei jedem Durchlauf die Vektorgröße abfragen, sondern nur bei der Initialisierung der Kontrollvariable (i)
2) man kann auch Elemente löschen, ohne ins Stolpern zu kommen.
Das Ziel ist das Ziel.
Da am Vektor selbst nichts gemacht wird, sondern dort wohl nur Referenzen auf Objekte stehen, ist es Hose wie Jacke.
Die 2.for-Schleife halte ich für schneller, obwohl ich vermute, dass der JIT die beiden Varianten egalisiert.
Gruß,
Ulrike
Eigentlich ganz einfach, wenn man's weiss!
Lesezeichen