Perbezaan Antara Penghitungan Dan Iterator

Perbezaan Antara Penghitungan Dan Iterator
Perbezaan Antara Penghitungan Dan Iterator

Video: Perbezaan Antara Penghitungan Dan Iterator

Video: Perbezaan Antara Penghitungan Dan Iterator
Video: DEADLIEST SPIDER BITE! 2024, November
Anonim

Penghitungan vs Iterator

Terdapat banyak struktur data yang bertindak sebagai koleksi di Java seperti Vectors, Hash tabel dan kelas yang menerapkan Java Collections Framework (iaitu HashMap, HashSet, ArrayList, TreeSet, TreeMap, LinkedList, LinkedHashMap dan LinkedHashSet). Terdapat banyak cara untuk melakukan iterasi melalui elemen 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 item. Enumerator diperkenalkan di JDK 1.0 dan Iterator yang diperkenalkan di JDK 1.2 hampir menggandakan fungsi Enumerator (dalam Kerangka Koleksi).

Apa itu Numerasi?

Penghitungan adalah antara muka awam di Java, diperkenalkan di JDK 1.0, yang menyediakan kemampuan untuk menghitung melalui urutan elemen. Ia terdapat di bawah pakej java.util. Apabila antara muka Enumerasi dilaksanakan oleh objek, objek itu dapat menghasilkan urutan unsur. Antara muka penghitungan mempunyai dua kaedah. Kaedah hasMoreElements () akan menguji apakah penghitungan ini mengandungi lebih banyak elemen dan nextElement () mengembalikan elemen seterusnya dalam urutan (jika ada sekurang-kurangnya satu lagi yang perlu dilakukan) Dengan kata lain, dengan memanggil nextElement () berturut-turut, pengaturcara dapat mengakses elemen individu dalam siri ini. Sebagai contoh, untuk mencetak semua elemen dalam Vektor v1 menggunakan Enumerator, potongan kod berikut boleh digunakan.

Penghitungan e = v1. elemen ();

Semasa (e.hasMoreLements ()) {

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

}

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

Apa itu Iterator?

Iterator adalah antara muka awam dalam pakej Java.util, yang memungkinkan lelaran melalui elemen objek koleksi yang menerapkan kerangka Koleksi (seperti ArrayList, LinkedList, dll.). Ini diperkenalkan di JDK 1.2 dan menggantikan Enumerator dalam Java Collections Framework. 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 remove () boleh digunakan untuk membuang elemen semasa dari koleksi yang mendasari. Contohnya, untuk mencetak semua elemen dalam Vektor v1 menggunakan Iterator, potongan kod berikut boleh digunakan.

Iterator i = v1. elemen ();

Sementara (i.hasNext ()) {

System.out.println (e.next ());

}

Apakah perbezaan antara Pengiraan dan Iterator?

Walaupun, Enumerasi dan Iterator adalah dua antara muka yang terdapat dalam pakej java.util, yang membolehkan melakukan lelaran / penghitungan melalui elemen-elemen siri, mereka mempunyai perbezaannya. Sebenarnya, Iterator, yang diperkenalkan setelah Enumerasi, menggantikan Enumerasi dalam kerangka Java Collections. Tidak seperti Penghitungan, Iterator tidak selamat. Ini bermaksud bahawa pengubahsuaian bersamaan (pada koleksi yang mendasari) tidak dibenarkan ketika Iterator digunakan. Ini sangat berguna dalam persekitaran berbilang benang di mana selalu ada risiko pengubahsuaian bersamaan. Sekiranya berlaku pengubahsuaian bersamaan, objek Iterator akan membuang ConcurrentModificationException. Iterator mempunyai nama kaedah yang lebih pendek berbanding dengan Enumerator. Selanjutnya,iterator mempunyai fungsi tambahan untuk menghapus elemen semasa lelaran (yang tidak mungkin menggunakan Enumerator). Jadi, jika ada keperluan untuk membuang elemen dari koleksi, Iterator adalah satu-satunya pilihan yang boleh dipertimbangkan.

Disyorkan: