for schleife

kimi

Grünschnabel
hallo Leute
wie kann ich diese for-each-schleife mit einer normalen for schleife schreiben.
danke im vorraus
Code:
for (MeinSpiel spiel : spielplan.get(nummer - 1).getSpielliste())
					{MeineMannschaft mannschaftA = spiel.getMannschaftA();
					 MeineMannschaft mannschaftB=spiel.getMannschaftB();
 
Ich glaube du meinst das:

Java:
String[] array = {
	"Die", "Schleife", "rennt"
};
for(String s:array)
{
	System.out.println(s);
}
 
Wenn du den Iterator explizit verwenden willst, ginge das z.B. so:
Code:
Iterator<MeinSpiel> i = spielplan.get(nummer-1).getSpielliste().iterator(); 
while (i.hasNext()) {
  MeinSpiel spiel = i.next();
  MeineMannschaft mannschaftA = spiel.getMannschaftA();
  MeineMannschaft mannschaftB=spiel.getMannschaftB();
}
 
Ich weiß nicht ganz was du mit einer normalen Schleife meinst.
Du kannst das natürlich auch mit einer for-Schleife lösen.

Code:
Typ spielListe = spielplan.get(nummer-1).getSpielliste();
for(int i = 0, size = spielListe.size(); i < size; i++)
{
MeinSpiel spiel = spielListe.get(i);
MeineMannschaft mannschaftA = spiel.getMannschaftA();
					 MeineMannschaft mannschaftB=spiel.getMannschaftB()};

Du musst oben nur noch den Typ für die SpielListe eintragen.

Diese Schleife ist so auch schneller, als die mit dem Iterator.

Gruß

Sascha
 
Diese Schleife ist so auch schneller, als die mit dem Iterator.

Sagt wer? Wenn sich hinter spielListe eine LinkedList verbirgt, dann ist der Iterator schneller. Wenns eine ArrayList ist, sind beide Varianten gleich schnell.
Andererseits funktioniert deine Lösung gar nicht, sollte spielListe ein Set sein, weil es dort gar keine Methode "get(int index)" gibt, wohl aber einen Iterator.
 
Sagt wer? Wenn sich hinter spielListe eine LinkedList verbirgt, dann ist der Iterator schneller. Wenns eine ArrayList ist, sind beide Varianten gleich schnell.
Andererseits funktioniert deine Lösung gar nicht, sollte spielListe ein Set sein, weil es dort gar keine Methode "get(int index)" gibt, wohl aber einen Iterator.

Bei der LinkedList und beim Set muss ich dir zustimmen, das habe ich vorhin nicht bedacht. Bei der ArrayList muss ich dir widersprechen. Da ist die von mir gezeigte Variante schneller als der Iterator.

Code:
public static void main(String[] args) {

		List arrayList = new ArrayList();

		
		long start;
		long stop;
		
		add(arrayList);
		
		
		start = System.currentTimeMillis();
		get(arrayList);
		stop = System.currentTimeMillis();
		System.out.println("get ArrayList ="+(stop-start));
		
		start = System.currentTimeMillis();
		getIterator(arrayList.iterator());
		stop = System.currentTimeMillis();
		System.out.println("getIterator ArrayList ="+(stop-start));
		
	

	}

	static void add(List list) {

		for (int i = 0; i < 1000000; i++) {
			list.add(i);
		}

	}

	static void get(List list) {

		for (int i = 0, size = list.size(); i < size; i++) {
			list.get(i);
		}

	}
	
	static void getIterator(Iterator it) {
	
		while(it.hasNext()){
			it.next();
		}

	}

get ArrayList =5
getIterator ArrayList =20

Gruß

Sascha
 
Zurück