Heim >Java >javaLernprogramm >Vergleich der Vor- und Nachteile von Iteratoren und For-Schleifen in Java

Vergleich der Vor- und Nachteile von Iteratoren und For-Schleifen in Java

WBOY
WBOYnach vorne
2023-04-22 14:28:092019Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen