Perbezaan Antara Pencari dan Iterator

Anonim

Enumeration vs Iterator

Terdapat banyak struktur data yang berfungsi sebagai koleksi di Jawa seperti Vektor, tabel Hash dan kelas yang mengimplementasikan Java Rangka Kerja Koleksi (iaitu HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap dan LinkedHashSet). Terdapat banyak cara untuk berulang melalui unsur-unsur individu objek di Jawa. Java menyediakan dua antara muka untuk memudahkan tugas ini. Pengkomputeran dan Iterator adalah dua antara muka yang terdapat di java. pakej utiliti yang menyediakan fungsi untuk menghitung melalui urutan atau objek dengan satu set barang. Enumerator diperkenalkan di JDK 1. 0 dan Iterator yang diperkenalkan di JDK 1. 2 hampir menduplikasi fungsi Enumerator (dalam Rangka Koleksi).

Apa itu Penghitungan?

Enumerasi adalah antara muka umum di Java, yang diperkenalkan di JDK 1. 0, yang menyediakan keupayaan untuk menghitung melalui urutan elemen. Ia dijumpai di bawah java. pake pakej. Apabila antara muka Enumerasi dilaksanakan oleh objek, objek itu boleh menjana urutan unsur. Antara muka pencukuran mempunyai dua kaedah. Kaedah hasMoreElements () akan menguji jika penghitungan ini mengandungi lebih banyak elemen dan seterusnyaElement () mengembalikan elemen seterusnya dalam urutan (jika ada sekurang-kurangnya satu lagi untuk pergi). Dengan kata lain, dengan memanggil nextElement () berturut-turut, programmer dapat mengakses unsur-unsur individu dalam siri ini. Contohnya, untuk mencetak semua elemen dalam Vektor v1 menggunakan Pengeluar, potongan kod berikut boleh digunakan.

Enumerasi e = v1. unsur ();

Sementara (e. HasMoreLements ()) {

System. keluar. println (e. nextElement ());

}

Enumerator juga boleh digunakan untuk menentukan aliran input ke objek SequenceInputStream.

Apa itu Iterator?

Iterator adalah antara muka umum di Jawa. pakej yang membolehkan ia melewati elemen objek koleksi yang melaksanakan rangka kerja Koleksi (seperti ArrayList, LinkedList, dll.). Ini diperkenalkan di JDK 1. 2 dan menggantikan Enumerator dalam Rangka Kerja Koleksi Jawa. Iterator mempunyai tiga kaedah. Kaedah hasNext () menguji sama ada terdapat elemen yang tersisa dalam koleksi dan kaedah seterusnya () mengembalikan elemen seterusnya dalam siri ini. Kaedah keluarkan () boleh digunakan untuk mengalih keluar elemen semasa dari koleksi asas. Sebagai contoh, untuk mencetak semua elemen dalam Vector v1 menggunakan Iterator, potongan kod berikut boleh digunakan.

Iterator i = v1. unsur ();

Sementara (i. HasNext ()) {

System. keluar. cetak (seterusnya);

}

Apakah perbezaan di antara Enumeration dan Iterator?

Walaupun, Enumeration dan Iterator adalah dua antara muka yang terdapat di java.pakej utiliti, yang membolehkan ia meleret / menghitung melalui unsur siri, mereka mempunyai perbezaannya. Sebenarnya, Iterator, yang diperkenalkan selepas Enumeration, menggantikan Enumerasi dalam rangka kerja Koleksi Java. Tidak seperti Pencerapan, Iterator tidak selamat. Ini bermakna pengubahsuaian serentak (kepada koleksi pendasar) tidak dibenarkan apabila Iterator digunakan. Ini sangat berguna dalam persekitaran berbilang mata yang sentiasa ada risiko pengubahsuaian serentak. Sekiranya pengubahsuaian serentak, objek Iterator akan membuang ConcurrentModificationException. Iterator mempunyai nama kaedah yang lebih pendek berbanding dengan Enumerator. Selain itu, iterator mempunyai fungsi tambahan untuk memadam unsur-unsur semasa lelaran (yang tidak mungkin menggunakan Enumerator). Oleh itu, jika ada keperluan untuk menghapuskan unsur-unsur dari koleksi, Iterator adalah satu-satunya pilihan yang boleh dipertimbangkan.