Perbezaan Antara ArrayList dan Vektor

ArrayList vs Vector

Sebuah vektor mengimplementasi array yang boleh tumbuh / menyusut pada masa runtuh apabila beberapa elemen ditambahkan atau dikeluarkan dari itu. Unsur-unsurnya diakses menggunakan indeks integer. Dua bidang - peningkatan kapasiti dan kapasiti, mencirikan pengurusan penyimpanan vektor. Ia melaksanakan empat antara muka:
* Senarai
* Akses Rawak
* Cloneable
* Antara muka bersiri

ArrayList, seperti vektor, juga melaksanakan empat antara muka. Sekali lagi, seperti vektor, saiznya boleh berubah semasa runtime. Juga, ia mempunyai bidang yang dipanggil kapasiti yang saiznya sebesar saiz ArrayList.

Kedua-dua vektor dan ArrayList adalah baik untuk mendapatkan unsur-unsur daripada sebarang kedudukan dan juga untuk memasukkan atau memadam elemen dari hujung kelas kontena.
Dari perspektif API, kedua vektor serta ArrayList sangat serupa. Jadi di mana betul-betul terletak perbezaan antara keduanya? Perkara-perkara berikut akan memberi sedikit gambaran mengenai perkara ini:

1. Penyegerakan: Vektor disegerakkan tetapi ArrayList tidak. Jika anda menambah atau memadam elemen dari ArrayList, ia dirujuk sebagai pengubahsuaian struktur. Apabila berbilang benang mengakses ArrayList serentak dengan blok kod yang mengubah suai senarai, maka seseorang perlu menyegerakkan senarai secara luaran. Secara ringkas, kandungan vektor adalah benang selamat manakala ArrayList tidak. Sekiranya keperluan tersebut tidak menyebutkan pengumpulan thread yang selamat, maka seseorang harus memilih ArrayList sebagai penyegerakan yang mencatat prestasi. ArrayLists yang tidak disegerakkan adalah pantas.

2. Pertumbuhan data: Kedua-dua ArrayList dan elemen vektor disimpan sebagai array, tetapi vektor mempunyai saiz lalai 10, dan ArrayList tidak mempunyai saiz lalai. Apabila seseorang menambah elemen sama ada ArrayList atau vektor, terdapat kemungkinan bahawa sama ada kelas boleh kehabisan ruang. Dalam kes sedemikian, secara kebiasaannya Vektor mempunyai saiznya manakala saiz ArrayList meningkat sebanyak 50%. Anda boleh menetapkan nilai kenaikan dalam kes vektor yang tidak mungkin untuk ArrayList.

3. Mengembara elemen: ArrayList mempunyai kelebihan di sini kerana anda boleh mengakses elemennya dengan hanya menggunakan indeks. Dalam hal vektor, anda perlu membuat pemula untuk melintasi unsur-unsurnya.

Ringkasan:

1.Jika kelas kontena diubahsuai oleh satu benang atau beberapa pembolehubah tempatan, maka anda harus menggunakan ArrayList.
2. Apabila kelas kontena diakses oleh pelbagai benang, maka gunakan vektor sebaliknya anda perlu melakukan penyegerakan manual.
3. Kita boleh menentukan saiz kenaikan dengan vektor dan dengan ArrayList kita tidak boleh.
4.A vektor disegerakkan dan ArrayList tidak.
5.A vektor boleh meningkatkan saiz dengan dua kali ganda; ArrayList boleh menambahnya sebanyak 50%.