Disyorkan, 2020

Pilihan Editor

Perbezaan Antara ArrayList dan Vektor di Jawa

ArrayList dan Vector kedua-duanya adalah kelas di bawah hierarki Framework Koleksi. ArrayList dan Vector, kedua-duanya digunakan untuk membuat pelbagai objek dinamik di mana array boleh berkembang dengan saiz dan apabila diperlukan. Terdapat dua perbezaan asas yang membezakan ArrayList dan Vector ialah Vektor tergolong dalam kelas Legacy yang kemudian direkayasa semula untuk menyokong kelas koleksi sedangkan ArrayList adalah kelas koleksi standard. Satu lagi perbezaan penting ialah ArrayList tidak disegerakkan sebaliknya; Vektor disegerakkan.

Marilah kita mengkaji beberapa perbezaan lain dengan bantuan Carta Perbandingan yang ditunjukkan di bawah.

Carta Perbandingan

Asas untuk PerbandinganArrayListVektor
AsasKelas ArrayList tidak disegerakkan.Kelas vektor disegerakkan.
Kelas warisanArrayList adalah kelas Koleksi standard.Vektor adalah kelas warisan, yang direka semula untuk menyokong kelas pengumpulan.
Deklarasi Kelaskelas ArrayListkelas Vektor
Pemindahan semulaApabila tidak ditentukan ArrayList ditambah dengan separuh saiznya.Apabila tidak ditentukan, vektor adalah bertambah untuk menggandakan saiznya.
PrestasiOleh kerana ArrayList tidak disegerakkan, ia beroperasi lebih cepat daripada Vektor.Sebagai vektor disegerakkan, ia beroperasi lebih lambat daripada ArrayList.
Pencacah / pencerobohArrayList menggunakan antara muka Iterator untuk melintasi objek yang disimpan dalam ArrayList.Vektor menggunakan Pengiraan serta antara muka Iterator untuk melintasi objek yang disimpan dalam Vektor.

Definisi ArrayList

ArrayList tergolong dalam senarai kelas koleksi standard. ArrayList kelas ditakrifkan dalam pakej java.util, ia memperluaskan kelas AbstractList yang juga merupakan kelas koleksi standard, dan ia juga melaksanakan Senarai, antara muka yang ditakrifkan dalam Interface Koleksi. Di Jawa, array standard sentiasa panjang tetap. Ini bermakna sekali dibuat; ia tidak berkembang secara dinamik atau mengecut dalam saiz. Oleh itu, anda harus mempunyai pengetahuan terlebih dahulu mengenai panjang array yang anda gunakan. Tetapi, kadang-kadang ia mungkin berlaku bahawa panjang yang dikehendaki didedahkan pada masa runtuh jadi, untuk menangani keadaan seperti ini java memperkenalkan ArrayList.

ArrayList adalah kelas yang digunakan untuk penciptaan dinamik pelbagai yang memegang rujukan kepada objek. Arahan ini boleh berkembang dalam saiz dan apabila diperlukan. Pengisytiharan kelas adalah seperti berikut:

 kelas ArrayList 

Di sini, E menentukan jenis objek yang array akan dipegang. Arahan yang dibuat adalah panjang berubah, dan ia meningkat dan berkurang dalam saiz apabila objek ditambah atau dikeluarkan dari senarai.

ArrayList tidak disegerakkan yang bermaksud, lebih daripada satu thread boleh beroperasi pada array pada masa yang sama. Sebagai contoh, jika satu benang menambah rujukan objek kepada array dan satu lagi benang akan mengeluarkan rujukan objek dari array yang sama pada masa yang sama. Penciptaan pelbagai dinamik menggunakan kelas ArrayList:

 ArrayList S1 = ArrayList baru (); System.out.println ("Saiz awal S1:" + S1.size ()); S1.add ("T"); S1.add ("C"); S1.add ("H"); S1.add (1, "E"); System.out.println ("Selepas tambahan S1 mengandungi:" + S1); System.out.println ("Saiz S1 selepas penambahan:" + S1.size ()); S1.remove ("T"); S1.remove (2); System.out.println ("Selepas pemadaman S1 mengandungi:" + S1); System.out.println ("Saiz S1 selepas penghapusan:" + S1.size ()); / / OutputInitial saiz S1: 0 Selepas tambahan S1 mengandungi: [T, E, C, H]; Saiz S1 selepas penambahan: 4 Selepas penghapusan S1 mengandungi: [E, H] Ukuran S1 selepas penghapusan: 2 

Dalam kod di atas, anda dapat melihatnya; Saya mencipta pelbagai objek jenis rentetan. Saya menambah beberapa objek ke array S1 menggunakan kaedah add (), dan kemudian memadam beberapa objek menggunakan kaedah remove (). Anda boleh melihat jika anda tidak menentukan saiz awal array itu akan menjadi '0' panjang. Seperti yang anda dapat lihat array tumbuh dan mengecil dalam saiz semasa anda menambah dan memadam unsur-unsur.

Definisi Vektor

Vektor adalah kelas Legacy yang direkayasa semula untuk menyokong kelas koleksi dalam hierarki Framework Koleksi. Kelas vektor juga ditakrifkan dalam pakej java.util, diperluaskan oleh kelas AbstractList dan dilaksanakan oleh antara muka Senarai . Kelas vektor diisytiharkan sebagai berikut:

 kelas Vektor 

Di sini, E mentakrifkan jenis objek yang akan disimpan dalam array. Arahan yang dibuat menggunakan kelas Vektor adalah panjang berubah. Ia meningkatkan dua kali ganda saiznya jika kenaikan tidak ditentukan. Mari kita fahami penciptaan pelbagai menggunakan Vektor.

 Vektor V = vektor baru (1, 1); V.addElement ("Tech"); V.addElement ("Perbezaan"); System.out.println ("Kapasiti selepas 2 penambahan:" + V.capacity ()); V.addElement ("Antara"); V.addElement ("Vektor"); System.out.println ("Kapasiti semasa:" + V.capacity ()); // Kapasiti Output selepas 2 penambahan: 2 Kapasiti semasa: 4 

Di dalam kod di atas, anda dapat melihatnya, saya menyatakan saiz dan nilai kenaikan dalam pembina Vektor masing-masing, sambil mengisytiharkan pelbagai objek rentetan. Oleh itu, anda boleh memerhatikan bahawa sebagai had array selesai, ia meningkat dengan nilai yang diberikan kepada pembina semasa pengisytiharan.

Perbezaan Kunci Antara ArrayList dan Vektor

  1. Pelbagai thread boleh beroperasi pada ArrayList pada masa yang sama dengan itu ia dianggap tidak disegerakkan . Tidak seperti ArrayList, hanya satu benang yang boleh beroperasi pada vektor pada satu masa; oleh itu ia dipanggil Disegerakkan .
  2. Dalam versi awal Java, beberapa kelas dan antara muka akan menyediakan kaedah untuk menyimpan objek yang mereka sebut sebagai Vector kelas Legacy adalah salah satu kelas Legacy di Jawa. Kemudian, kelas warisan ini direkayasa semula untuk menyokong kelas Pengumpulan sedangkan, kelas ArrayList adalah Class Collection standard.
  3. Apabila had array digunakan sepenuhnya dan objek baru ditambahkan di sebelah array yang habis, saiznya tumbuh dalam kedua-dua kes iaitu dalam ArrayList dan juga dalam Vektor tetapi, perbezaannya ialah dalam ArrayList, jika tidak ditentukan saiznya adalah bertambah sebanyak 50% daripada array semasa sedangkan dalam array Vektor dua kali ganda saiz jika nilai kenaikan tidak dinyatakan.
  4. Vektor menggunakan Enumeration dan juga Iterator untuk melintasi array manakala ArrayList hanya menggunakan iterator untuk melintasi array.
  5. Oleh kerana ArrayList tidak disegerakkan dan banyak benang boleh beroperasi di atasnya pada masa yang sama prestasinya lebih baik daripada Vektor yang hanya satu benang dapat beroperasi pada satu masa.

Kesamaan:

  1. ArrayList dan Vektor kedua-duanya ditakrifkan dalam pakej java.util.
  2. ArrayList dan Vector kedua-duanya memanjangkan kelas AbsractList.
  3. ArrayList dan Vektor kedua-duanya melaksanakan antara muka Senarai.
  4. ArrayList dan Vectors kedua-duanya digunakan untuk membuat pelbagai dinamik yang tumbuh seperti yang diperlukan.
  5. ArrayList dan Vector kedua-duanya memegang rujukan objek.

Kesimpulan:

Saya membuat kesimpulan dengan mengatakan bahawa penggunaan ArrayList adalah lebih baik daripada menggunakan Vektor kerana ia melakukan lebih cepat dan lebih baik.

Top