Direkomendasikan, 2024

Pilihan Editor

Perbedaan Antara ArrayList dan Vektor di Jawa

ArrayList dan Vector keduanya adalah kelas di bawah hirarki Kerangka Kerja Collection. ArrayList dan Vektor, keduanya digunakan untuk membuat array dinamis objek di mana array dapat tumbuh dalam ukuran saat dan ketika diperlukan. Ada dua perbedaan dasar yang membedakan ArrayList dan Vektor adalah bahwa Vektor milik kelas Legacy yang kemudian direkayasa ulang untuk mendukung kelas koleksi sedangkan, ArrayList adalah kelas koleksi standar. Perbedaan penting lainnya adalah bahwa ArrayList tidak disinkronkan di sisi lain; Vektor disinkronkan.

Mari kita pelajari beberapa perbedaan lain dengan bantuan Bagan Perbandingan yang ditunjukkan di bawah ini.

Grafik perbandingan

Dasar untuk PerbandinganArrayListVektor
DasarKelas ArrayList tidak disinkronkan.Kelas vektor disinkronkan.
Kelas warisanArrayList adalah kelas Koleksi standar.Vektor adalah kelas warisan, direkayasa ulang untuk mendukung kelas koleksi.
Deklarasi Kelaskelas ArrayListvektor kelas
RealokasiKetika tidak ditentukan, ArrayList bertambah setengah ukurannya.Ketika tidak ditentukan, vektor bertambah dua kali lipat dari ukurannya.
PerformaKarena ArrayList tidak disinkronkan, ia beroperasi lebih cepat daripada Vector.Ketika Vector disinkronkan, ia beroperasi lebih lambat daripada ArrayList.
Pencacahan / IteratorArrayList menggunakan antarmuka Iterator untuk melintasi objek yang disimpan di ArrayList.Vektor menggunakan enumerasi serta antarmuka Iterator untuk melintasi objek yang disimpan dalam Vektor.

Definisi ArrayList

ArrayList termasuk dalam daftar kelas koleksi standar. Kelas ArrayList didefinisikan di dalam paket java.util, ia memperluas kelas AbstractList yang juga merupakan kelas koleksi standar, dan juga mengimplementasikan Daftar, antarmuka yang ditentukan dalam Koleksi Antarmuka. Di Jawa, array standar selalu memiliki panjang tetap. Itu berarti sekali diciptakan; itu tidak tumbuh secara dinamis atau menyusut ukurannya. Jadi, Anda harus memiliki pengetahuan sebelumnya tentang panjang array yang Anda gunakan. Tapi, kadang-kadang mungkin terjadi bahwa panjang yang diperlukan terungkap saat runtime jadi, untuk menangani situasi semacam ini java memperkenalkan ArrayList.

ArrayList adalah kelas yang digunakan untuk pembuatan array dinamis yang menyimpan referensi ke objek. Array ini dapat tumbuh dalam ukuran saat dan ketika dibutuhkan. Deklarasi kelas adalah sebagai berikut:

 kelas ArrayList 

Di sini, E menentukan jenis objek yang akan dimiliki oleh array. Array yang dibuat memiliki panjang variabel, dan itu bertambah dan berkurang dalam ukuran ketika objek ditambahkan atau dihapus dari daftar.

ArrayList tidak disinkronkan yang berarti, lebih dari satu utas dapat beroperasi pada array pada saat yang sama. Misalnya, jika satu utas menambahkan referensi objek ke array dan utas lainnya menghapus referensi objek dari array yang sama secara bersamaan. Pembuatan array dinamis menggunakan kelas ArrayList:

 ArrayList S1 = new ArrayList (); System.out.println ("Ukuran awal S1:" + S1.size ()); S1.add ("T"); S1.add ("C"); S1.add ("H"); S1.add (1, "E"); System.out.println ("Setelah penambahan S1 berisi:" + S1); System.out.println ("Ukuran S1 setelah penambahan:" + S1.size ()); S1.remove ("T"); S1.remove (2); System.out.println ("Setelah penghapusan S1 berisi:" + S1); System.out.println ("Ukuran S1 setelah penghapusan:" + S1.size ()); // OutputInitial size S1: 0 Setelah penambahan S1 berisi: [T, E, C, H]; Ukuran S1 setelah penambahan: 4 Setelah penghapusan S1 berisi: [E, H] Ukuran S1 setelah penghapusan: 2 

Dalam kode di atas, Anda dapat melihatnya; Saya membuat array objek tipe string. Saya menambahkan beberapa objek ke array S1 menggunakan metode add (), dan kemudian menghapus beberapa objek menggunakan metode remove (). Anda dapat mengamati jika Anda tidak menentukan ukuran awal array, panjangnya akan menjadi '0'. Seperti yang Anda lihat, array bertambah dan menyusut dalam ukuran ketika Anda menambah dan menghapus elemen.

Definisi Vektor

Vektor adalah kelas Legacy yang direkayasa ulang untuk mendukung kelas koleksi dalam hirarki Kerangka Kerja Koleksi. Kelas vektor juga didefinisikan dalam paket java.util, diperluas oleh kelas AbstractList dan diimplementasikan oleh antarmuka Daftar . Kelas vektor dinyatakan sebagai berikut:

 vektor kelas 

Di sini, E mendefinisikan jenis objek yang akan disimpan dalam array. Array yang dibuat menggunakan kelas Vector memiliki panjang variabel. Ini meningkatkan ukurannya dua kali lipat jika kenaikan tidak ditentukan. Mari kita memahami pembuatan array menggunakan Vector.

 Vektor V = Vektor baru (1, 1); V.addElement ("Tech"); V.addElement ("Perbedaan"); System.out.println ("Kapasitas setelah 2 penambahan:" + V. kapasitas ()); V.addElement ("Antara"); V.addElement ("Vektor"); System.out.println ("Kapasitas saat ini:" + V. kapasitas ()); // Kapasitas Keluaran setelah 2 tambahan: 2 Kapasitas saat ini: 4 

Dalam kode di atas Anda dapat melihat bahwa, saya secara khusus menyebutkan ukuran dan nilai kenaikan masing-masing dalam konstruktor Vector, sambil mendeklarasikan array dari objek string. Oleh karena itu, Anda dapat mengamati bahwa ketika batas array selesai, ia bertambah dengan nilai yang diberikan kepada konstruktor sambil mendeklarasikan.

Perbedaan Kunci Antara ArrayList dan Vektor

  1. Beberapa utas dapat beroperasi pada ArrayList pada saat yang sama sehingga dianggap tidak disinkronkan . Tidak seperti ArrayList, hanya satu utas yang dapat beroperasi pada vektor pada satu waktu; karenanya disebut Sinkronisasi .
  2. Dalam versi awal Java, beberapa kelas dan antarmuka akan menyediakan metode untuk menyimpan objek yang mereka sebut kelas Legacy Vector adalah salah satu di antara kelas Legacy Jawa. Kemudian, kelas-kelas warisan ini direkayasa ulang untuk mendukung kelas Koleksi sedangkan, kelas ArrayList adalah Kelas Koleksi standar.
  3. Ketika batas array sepenuhnya digunakan dan objek baru ditambahkan di sebelah array yang habis, ukurannya tumbuh di kedua kasus yaitu di ArrayList dan juga di Vector tetapi, perbedaannya adalah bahwa di ArrayList, jika tidak ditentukan ukurannya. bertambah sebesar 50% dari array saat ini sedangkan, dalam vektor array ukurannya dua kali lipat jika nilai kenaikan tidak ditentukan.
  4. Vektor menggunakan Enumerasi dan juga Iterator untuk melintasi array, sedangkan ArrayList hanya menggunakan iterator untuk melintasi array.
  5. Karena ArrayList tidak disinkronkan dan banyak utas dapat beroperasi pada saat yang sama kinerjanya lebih baik daripada Vektor di mana hanya satu utas yang dapat beroperasi pada satu waktu.

Kesamaan:

  1. ArrayList dan Vector keduanya didefinisikan dalam paket java.util.
  2. ArrayList dan Vector keduanya memperpanjang kelas AbsractList.
  3. ArrayList dan Vector keduanya mengimplementasikan antarmuka Daftar.
  4. ArrayList dan Vektor keduanya digunakan untuk membuat array dinamis yang tumbuh sesuai kebutuhan.
  5. ArrayList dan Vector keduanya menyimpan referensi objek.

Kesimpulan:

Saya menyimpulkan dengan mengatakan bahwa penggunaan ArrayList lebih baik daripada menggunakan Vector karena kinerjanya lebih cepat dan lebih baik.

Top