Penghitungan vs Iterator
Terdapat banyak struktur data yang berfungsi sebagai koleksi di Jawa seperti Vektor, jadual Hash dan kelas yang melaksanakan Rangka Kerja Koleksi Java (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 menjadikan tugas ini lebih mudah. Penghitungan dan Iterator adalah dua antara muka yang terdapat dalam pakej java.util yang menyediakan fungsi untuk menghitung melalui urutan atau objek dengan satu set barang. Pengeluar diperkenalkan di JDK 1.0 dan Iterator yang diperkenalkan di JDK 1.2 hampir menduplikasi fungsi Enumerator (dalam Rangka Kerja Koleksi).
Apakah Enumerasi?
Penghitungan adalah antara muka umum di Jawa, diperkenalkan di JDK 1.0, yang menyediakan keupayaan untuk menghitung melalui urutan elemen. Ia dijumpai di bawah pakej java.util. Apabila antara muka Enumerasi dilaksanakan oleh objek, objek itu boleh menjana urutan unsur-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 boleh mengakses elemen individu dalam siri ini. Sebagai contoh, untuk mencetak semua elemen dalam Vektor v1 menggunakan Pengeluar, potongan kod berikut boleh digunakan.
Penghitungan e = v1.elements ();
Sementara (e.hasMoreLements ())
System.out.println (e.nextElement ());
Pengkaji juga boleh digunakan untuk menentukan aliran input ke objek SequenceInputStream.
Apa itu Iterator?
Iterator adalah antara muka umum dalam pakej Java.util, yang membolehkan 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 unsur-unsur 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, coretan kod berikut boleh digunakan.
Iterator i = v1.elements ();
Sementara (i.hasNext ())
System.out.println (e.next ());
Apakah perbezaan di antara Enumeration dan Iterator??
Walaupun, Enumeration and Iterator adalah dua antara muka yang terdapat dalam pakej java.util, yang membolehkan ia meleret / menghitung melalui unsur-unsur siri, mereka mempunyai perbezaannya. Sebenarnya, Iterator, yang diperkenalkan selepas Enumerasi, menggantikan Enumerasi dalam rangka kerja Koleksi Java. Tidak seperti Pencerapan, Iterator tidak selamat. Ini bermakna pengubahsuaian serentak (kepada pengumpulan asas) tidak dibenarkan apabila Iterator digunakan. Ini sangat berguna dalam persekitaran berbilang mata yang selalu 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.