1. Konzeptionelles Verständnis
for-Schleife: Es handelt sich um eine allgemeine Struktur, die die Iteration unterstützt und die effektivste und flexibelste Schleifenstruktur ist. Wir sagen also, dass es abhängig von Sammlungen existiert.
Foreach: Durch das Lesen des Quellcodes haben wir auch eine iterierbare Schnittstelle gefunden. Es enthält eine iterator()-Methode, die ein Iterator-Objekt generiert, und das Iterator-Objekt wird von foreach verwendet, um sich in der Sequenz zu bewegen. Kann für jedes Objekt verwendet werden, das die Iterable-Schnittstelle implementiert.
2. Effizienzbeispiel
Vergleich der Effizienz in ArrayList: List<Integer> integers = Lists.newArrayList();
for(int i=0;i<100000;i++){
integers.add(i);
}
long start1 = System.currentTimeMillis();
for(int count =0 ;count<10;count++){
for(int i=0;i<integers.size();i++){
int j=integers.get(i);
}
}
System.out.println(String.format("for循环100次时间:%s ms",System.currentTimeMillis()-start1));
long start2 = System.currentTimeMillis();
for(int count =0 ;count<10;count++) {
for (Integer i : integers) {
int j = i;
}
}
System.out.println(String.format("foreach循环100次时间:%s ms",System.currentTimeMillis()-start2));
long start3 = System.currentTimeMillis();
for(int count =0 ;count<10;count++) {
Iterator<Integer> iterator = integers.iterator();
while(iterator.hasNext()){
int j=iterator.next();
}
}
System.out.println(String.format("迭代器循环100次时间:%s ms",System.currentTimeMillis()-start3));
Ergebnis:
for循环100次时间:15 ms foreach循环100次时间:25 ms 迭代器循环100次时间:20 ms
Die Effizienz der drei unter ArrayList ist fast gleich und die for-Schleife ist die beste, da ArrayList über Arrays implementiert wird , und die Zeit, die benötigt wird, um Arrays über Indizes zu positionieren. Die Komplexität beträgt O(1) und kann in einem Mal lokalisiert werden, sodass die Effizienz sehr hoch ist.
Zusammenfassung: Die for-Schleife erleichtert den Zugriff auf sequentiell gespeicherte Datensätze, während foreach und iterator den Zugriff auf verknüpften Speicher erleichtern.Das obige ist der detaillierte Inhalt vonVergleich der Vor- und Nachteile von Iteratoren und For-Schleifen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!