nested loops mit Iterator

da_roman

Mitglied
Hallo, ich hab eine LinkedList und würde gerne mit einen Iterator genau das machen:

Java:
for(int i=0; i<coll.size(); i++) {
    for(int j=i+1; j<coll.size(); j++) {
        obj1 = coll.get(i);
        obj2 = coll.get(j); // ugly...
    }
}

Ich will ja nicht in einer loop mit coll.get(i) zugreifen sondern mit dem Iterator, finde aber im Moment keine Möglichkeit das umzusetzen..
Eine nested loop mit iterator j=i zuweisen kann ja net gehn ...

klingt eigentlich ziemlich basic^^ steh aber leider am schlauch..

danke & lg
 
über eine List kannst du auch so drüber gehen (Vorrausgesetzt Java > 5 ):
Java:
for(Object obj1 : coll){
	for(Object obj2 : coll){
		doSomethingWith(obj1, obj2);
	}
}

Jetzt weiß ich nur grad nicht, ob man über dieselbe Liste zur gleichen Zeit iterieren kann. Dann müsstest du dir erst mal eine Kopie der Liste anlegen:
Java:
List copy = new LinkedList();
copy.addAll(coll);
und dann in der 2. For Schleife nutzen.
 
Zuletzt bearbeitet:
die Zeile 3 könnte bei sowas übrigens vor die innere Schleife, muss nur je einmal statt oft passieren,

mit Iteratoren wird es nicht gerade besser, für die äußere Schleife, ok,
aber für die innere brauchst du jedesmal einen neuen, der bei 0 anfangen muss,
und dann musst du auch noch mitzählen bis wie weit er Elemente auslassen soll..

oder vielleicht etwas besser:
eine Schleife von i = 0 bis size,
darin je einen Iterator, bis i-1 überspringen, Element i holen, danach eine innere Schleife mit dem Rest des Iterators,
die weiteren Elemente mit dem gemerkten i-ten vergleichen
 

Zurück
Oben