ArrayList vs Vector
Vektor mengimplementasikan array yang dapat tumbuh / menyusut pada saat runtime ketika beberapa elemen ditambahkan atau dihapus darinya. Elemen-elemennya diakses menggunakan indeks integer. Dua bidang - peningkatan kapasitas dan kapasitas, mencirikan manajemen penyimpanan vektor. Ini mengimplementasikan empat antarmuka:
* Daftar
* Akses acak
* Dapat dikloning
* Antarmuka Serializable
ArrayList, seperti halnya vektor, juga mengimplementasikan empat antarmuka. Sekali lagi, seperti vektor, ukurannya dapat berubah selama runtime. Juga, ia memiliki bidang yang disebut kapasitas yang ukurannya sebesar ukuran ArrayList.
Baik vektor dan ArrayList baik untuk mengambil elemen dari posisi apa pun dan juga untuk memasukkan atau menghapus elemen dari akhir kelas kontainer.
Dari perspektif API, kedua vektor dan juga ArrayList sangat mirip. Jadi di mana tepatnya letak perbedaan keduanya? Poin-poin berikut akan menjelaskan beberapa hal tentang ini:
1. Sinkronisasi: Vektor disinkronkan tetapi ArrayList tidak. Jika Anda menambah atau menghapus elemen dari ArrayList, itu disebut sebagai modifikasi struktural. Ketika beberapa utas mengakses ArrayList bersamaan dengan blok kode yang memodifikasi daftar, maka orang perlu menyinkronkan daftar secara eksternal. Singkatnya, konten vektor aman-thread sedangkan ArrayList tidak. Jika persyaratan tidak menyebutkan koleksi aman-thread, maka orang harus memilih ArrayList sebagai sinkronisasi hits kinerja. ArrayLists yang tidak disinkronkan cepat.
2. Pertumbuhan data: ArrayList dan elemen vektor disimpan sebagai array, tetapi vektor memiliki ukuran standar 10, dan ArrayList tidak memiliki ukuran default. Ketika seseorang menambahkan elemen ke ArrayList atau vektor, ada kemungkinan bahwa kedua kelas dapat kehabisan ruang. Dalam kasus seperti itu, secara default Vector menggandakan ukurannya sementara ukuran ArrayList meningkat sebesar 50%. Anda dapat mengatur nilai kenaikan dalam kasus vektor yang tidak mungkin untuk ArrayList.
3. Melintasi elemen: ArrayList memiliki kelebihan di sini karena Anda dapat mengakses elemen-elemennya hanya dengan menggunakan indeks. Dalam kasus vektor, Anda perlu membuat iterator untuk melintasi elemen-elemennya.
Ringkasan:
1.Jika kelas kontainer harus dimodifikasi oleh satu utas atau variabel lokal, maka Anda harus menggunakan ArrayList.
2.Ketika kelas kontainer diakses oleh beberapa utas, maka gunakan vektor jika tidak, Anda harus melakukan sinkronisasi manual.
3. Kita dapat menentukan ukuran kenaikan dengan vektor dan dengan ArrayList kita tidak bisa.
4.A vektor disinkronkan dan ArrayList tidak.
5.A vektor dapat menambah ukuran dengan dua kali lipat; ArrayList dapat meningkatkannya hingga 50%.