Rumah  >  Artikel  >  Java  >  Cara menggunakan fungsi Iterator dalam Java untuk traversal koleksi

Cara menggunakan fungsi Iterator dalam Java untuk traversal koleksi

WBOY
WBOYasal
2023-06-26 15:47:123745semak imbas

Di Java, koleksi ialah struktur data biasa yang membolehkan kami menyimpan dan memproses sejumlah besar data. Dalam banyak kes, kita perlu merentasi koleksi untuk beroperasi pada elemennya. Untuk mencapai tujuan ini, Java menyediakan fungsi Iterator, yang membolehkan kami melintasi elemen dalam koleksi dengan mudah. Dalam artikel ini, kami akan menerangkan cara menggunakan fungsi Iterator dalam Java untuk traversal koleksi.

1. Definisi fungsi Iterator

Dalam Java, Iterator ialah antara muka "iterator", yang mentakrifkan satu set kaedah yang boleh digunakan untuk merentasi elemen dalam koleksi. Antara muka Iterator mentakrifkan lima kaedah:

  1. boolean hasNext(): Jika masih terdapat unsur-unsur yang boleh dilalui, ia mengembalikan benar jika tidak, ia mengembalikan palsu.
  2. E next(): Mengembalikan elemen seterusnya.
  3. void remove(): Alih keluar elemen yang terakhir dikembalikan oleh iterator daripada koleksi (operasi pilihan).
  4. void forEachRemaining(Consumer0d74ac1b2f8f9ab0eb66f930789a9645 action): Lintas elemen yang tinggal dalam koleksi dan lakukan operasi yang ditentukan.
  5. default void forEachRemaining(Consumer0d74ac1b2f8f9ab0eb66f930789a9645 action): Kaedah baharu yang diperkenalkan dalam Java 8 yang akan membuang NullPointerException apabila tiada operasi yang diberikan.

2. Penggunaan fungsi Iterator

Fungsi Iterator biasanya digunakan bersama dengan gelung sementara untuk melintasi elemen dalam koleksi. Berikut ialah contoh program menggunakan fungsi Iterator:

import java.util.ArrayList;
import java.util.Iterator;

public class IteratorExample {
    public static void main(String[] args) {

        // 创建一个包含整数(Integer)的数组列表
        ArrayList<Integer> numbers = new ArrayList<Integer>();

        // 添加元素
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);

        // 获取迭代器
        Iterator<Integer> it = numbers.iterator();

        // 遍历元素
        while(it.hasNext()) {
            Integer number = it.next();
            System.out.println(number);
        }
    }
}

Dalam program ini, kami mula-mula mencipta koleksi ArrayList dan menambah beberapa integer padanya. Kemudian, kita mendapatkan iterator ArrayList dengan memanggil kaedah iterator. Seterusnya, kami menggunakan gelung sementara untuk melelaran melalui elemen dalam koleksi sehingga tiada lagi elemen untuk diulang. Dalam gelung, kami menggunakan kaedah it.hasNext() untuk menyemak sama ada terdapat lagi elemen untuk dilalui. Jika ada, kami menggunakan kaedah it.next() untuk mendapatkan elemen seterusnya. Dalam contoh ini, kami menggunakan kaedah System.out.println untuk mengeluarkan nilai setiap elemen.

3. Perbandingan antara fungsi Iterator dan untuk setiap gelung

Untuk merentasi koleksi, fungsi Iterator dan untuk setiap gelung ialah dua kaedah yang paling biasa digunakan. Sebelum Java 5, lelaran pada koleksi dengan menggunakan fungsi Iterator adalah satu-satunya pilihan. Walau bagaimanapun, bermula dari Java 5, untuk-setiap gelung telah diperkenalkan, yang menjadikan lelaran ke atas koleksi lebih mudah dan lebih mudah. Berikut membandingkan perbezaan antara fungsi Iterator dan untuk setiap gelung:

  1. Sintaks

Sintaks fungsi Iterator adalah lebih kompleks daripada sintaks bagi setiap gelung. Ia memerlukan kita terlebih dahulu mendapatkan iterator dan kemudian melelaran melalui elemen dengan memanggil kaedah hasNext() dan next(). Sebagai perbandingan, sintaks bagi setiap gelung adalah lebih ringkas, dan hanya satu pembolehubah diperlukan untuk mewakili setiap elemen dalam lelaran.

  1. Kecekapan

Dalam banyak kes, fungsi Iterator adalah lebih cekap daripada untuk setiap gelung. Ini adalah kerana fungsi Iterator membolehkan kami memadamkan elemen semasa mengulanginya. Selain itu, untuk beberapa jenis koleksi, seperti LinkedList, menggunakan fungsi Iterator untuk melintasi adalah lebih pantas daripada untuk setiap gelung.

  1. Fungsi

Fungsi Iterator menyediakan beberapa fungsi yang tidak ada pada setiap gelung. Sebagai contoh, fungsi Iterator membenarkan kami menggunakan kaedah remove() untuk mengalih keluar elemen semasa melintasi koleksi.

4. Ringkasan

Dengan menggunakan fungsi Iterator dalam Java, kita boleh melintasi elemen dalam koleksi dengan mudah. Sama ada menggunakan gelung sementara atau gelung untuk setiap, kita boleh menggunakan fungsi Iterator untuk melintasi koleksi. Walaupun sintaks fungsi Iterator agak kompleks, dalam beberapa kes ia lebih cekap dan mempunyai lebih banyak fungsi daripada untuk setiap gelung. Oleh itu, semasa merentasi koleksi, kita harus menggunakan dua kaedah secara fleksibel dan memilih yang mana satu untuk digunakan mengikut situasi sebenar.

Atas ialah kandungan terperinci Cara menggunakan fungsi Iterator dalam Java untuk traversal koleksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn