Penghitungan vs iterator
Terdapat banyak struktur data yang bertindak sebagai koleksi dalam java seperti vektor, jadual hash dan kelas yang melaksanakan rangka koleksi Java (i.e. Hashmap, hashset, arraylist, treeset, treemap, LinkedList, LinkedHashMap dan LinkedHashset). Terdapat banyak cara untuk melangkah melalui unsur individu objek di Java. Java menyediakan dua antara muka untuk menjadikan tugas ini lebih mudah. Penghitungan dan iterator adalah dua antara muka yang terdapat di Java.pakej util yang menyediakan fungsi untuk menghitung melalui urutan atau objek dengan satu set item. Enumerator diperkenalkan di JDK 1.0 dan iterator yang diperkenalkan di JDK 1.2 Hampir menduplikasi fungsi pengarang (dalam kerangka koleksi).
Apa itu penghitungan?
Penghitungan adalah antara muka awam di Java, yang diperkenalkan dalam JDK 1.0, yang memberikan keupayaan untuk menghitung melalui urutan elemen. Ia dijumpai di bawah java.pakej util. Apabila antara muka penghitungan dilaksanakan oleh objek, objek itu dapat menghasilkan urutan elemen. Antara muka penghitungan mempunyai dua kaedah. Kaedah HasMoreElements () akan menguji jika penghitungan ini mengandungi lebih banyak elemen dan NextElement () mengembalikan elemen seterusnya dalam urutan (jika terdapat sekurang -kurangnya satu lagi). Dengan kata lain, dengan memanggil NextElement () berturut -turut, pengaturcara dapat mengakses elemen individu dalam siri ini. Contohnya, untuk mencetak semua elemen dalam vektor v1 menggunakan enumerator, coretan kod berikut boleh digunakan.
Penghitungan e = v1.unsur -unsur ();
Sementara (e.hasmorelements ())
Sistem.keluar.println (e.NextElement ());
Enumerator juga boleh digunakan untuk menentukan aliran input ke objek SequenceInputStream.
Apa Iterator?
Iterator adalah antara muka umum di Java.Pakej Util, yang membolehkan melewati unsur -unsur objek koleksi yang melaksanakan rangka kerja koleksi (seperti ArrayList, LinkedList, dan lain -lain.). Ini diperkenalkan di JDK 1.2 dan menggantikan pengarang dalam rangka koleksi Java. Iterator mempunyai tiga kaedah. Kaedah HasNext () menguji sama ada terdapat elemen yang tinggal dalam koleksi dan kaedah seterusnya () mengembalikan elemen seterusnya dalam siri ini. Kaedah keluarkan () boleh digunakan untuk mengeluarkan elemen semasa dari koleksi yang mendasari. Contohnya, untuk mencetak semua elemen dalam vektor v1 menggunakan iterator, coretan kod berikut boleh digunakan.
Iterator i = v1.unsur -unsur ();
Sementara saya.hasNext ())
Sistem.keluar.println (e.seterusnya ());
Apakah perbezaan antara penghitungan dan iterator?
Walaupun, penghitungan dan iterator adalah dua antara muka yang terdapat di Java.Pakej Util, yang membolehkan berulang/menghitung melalui unsur -unsur siri, mereka mempunyai perbezaan mereka. Sebenarnya, Iterator, yang diperkenalkan selepas penghitungan, menggantikan penghitungan dalam rangka koleksi Java. Tidak seperti penghitungan, iterator gagal selamat. Ini bermaksud bahawa pengubahsuaian serentak (ke koleksi asas) tidak dibenarkan apabila pengarang digunakan. Ini sangat berguna dalam persekitaran berbilang thread di mana selalu ada risiko pengubahsuaian serentak. Sekiranya pengubahsuaian serentak, objek iterator akan membuang ConcurrentModificationException. Iterator mempunyai nama kaedah yang lebih pendek berbanding dengan Enumerator. Tambahan pula, iterator mempunyai fungsi tambahan untuk memadam elemen semasa lelaran (yang tidak mungkin menggunakan enumerator). Oleh itu, jika ada keperluan untuk mengeluarkan unsur -unsur dari koleksi, iterator adalah satu -satunya pilihan yang boleh dipertimbangkan.