Rumah  >  Artikel  >  Java  >  Perbandingan kebaikan dan keburukan iterator dan untuk gelung di Jawa

Perbandingan kebaikan dan keburukan iterator dan untuk gelung di Jawa

WBOY
WBOYke hadapan
2023-04-22 14:28:091949semak imbas

1. Pemahaman konsep

untuk gelung: Ia ialah struktur umum yang menyokong lelaran dan merupakan struktur gelung yang paling berkesan dan fleksibel

Iterator: Ia diperoleh melalui kaedah iterator() koleksi, jadi kami katakan bahawa ia bergantung pada koleksi

Foreach: Dengan membaca sumber. kod Kami juga menjumpai antara muka Boleh Diterbalikkan. Ia mengandungi kaedah iterator() yang menjana objek Iterator, dan objek Iterator digunakan oleh foreach untuk bergerak dalam jujukan. Boleh digunakan untuk mana-mana objek yang melaksanakan antara muka Boleh Diulang.

2. Contoh Kecekapan

Perbandingan kecekapan dalam 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));

Hasil:

for循环100次时间:15 ms
foreach循环100次时间:25 ms
迭代器循环100次时间:20 ms

Di bawah ArrayList The kecekapan ketiga-tiganya adalah hampir sama, dan gelung for adalah yang terbaik, kerana ArrayList dilaksanakan melalui tatasusunan, dan kerumitan masa untuk meletakkan tatasusunan melalui indeks ialah O(1), dan ia boleh ditempatkan dalam satu masa. , jadi kecekapan adalah sangat tinggi.

Ringkasan: for loop memudahkan akses kepada rekod yang disimpan secara berurutan, manakala foreach dan iterator memudahkan akses kepada storan terpaut.

Atas ialah kandungan terperinci Perbandingan kebaikan dan keburukan iterator dan untuk gelung di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam