Perbedaan antara arraylist dan vektor

Perbedaan antara arraylist dan vektor

ArrayList vs vektor

Vektor mengimplementasikan array yang dapat tumbuh/menyusut saat runtime ketika beberapa elemen ditambahkan atau dihapus darinya. Elemennya diakses menggunakan indeks integer. Dua Bidang - Peningkatan Kapasitas dan Kapasitas, Karakterisasi Manajemen Penyimpanan Vektor. Ini mengimplementasikan empat antarmuka:
* Daftar
* Akses acak
* Kloning
* Antarmuka serial yang dapat di -serial

ArrayList, seperti 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 maupun arraylist baik untuk mengambil elemen dari posisi apa pun dan juga untuk memasukkan atau menghapus elemen dari ujung kelas wadah.
Dari perspektif API, baik vektor maupun arraylist sangat mirip. Jadi di mana tepatnya terletak perbedaan antara keduanya? Poin -poin berikut akan menjelaskan masalah ini:

1. Sinkronisasi: Vektor disinkronkan tetapi arraylist tidak. Jika Anda menambahkan atau menghapus elemen dari daftar array, itu disebut sebagai modifikasi struktural. Ketika beberapa utas mengakses daftar array secara bersamaan dengan blok kode yang memodifikasi daftar, maka orang perlu menyinkronkan secara eksternal daftar. Singkatnya, konten vektor aman-utas sedangkan arraylist tidak. Jika persyaratan tidak menyebutkan koleksi yang aman, maka seseorang harus memilih arraylist saat sinkronisasi mengenai kinerja. Daftar array yang tidak disinkronkan cepat.

2. Pertumbuhan Data: Baik elemen arraylist dan vektor disimpan sebagai array, tetapi vektor memiliki ukuran default 10, dan arraylist tidak memiliki ukuran default. Saat seseorang menambahkan elemen ke daftar array atau vektor, ada kemungkinan bahwa salah satu kelas dapat kehabisan ruang. Dalam kasus seperti itu, secara default vektor menggandakan ukurannya sementara ukuran arraylist meningkat sebesar 50%. Anda dapat menetapkan nilai kenaikan dalam hal vektor yang tidak mungkin untuk arraylist.

3. Melintasi Elemen: ArrayList memiliki keuntungan di sini karena Anda dapat mengakses elemennya dengan hanya menggunakan indeks. Dalam kasus vektor, Anda perlu membuat iterator untuk melintasi elemennya.

Ringkasan:

1.Jika kelas wadah akan dimodifikasi oleh satu utas atau beberapa variabel lokal, maka Anda harus menggunakan daftar array.
2.Saat kelas wadah diakses oleh banyak utas, lalu gunakan vektor jika tidak Anda harus melakukan sinkronisasi manual.
3.Kita dapat menentukan ukuran kenaikan dengan vektor dan dengan daftar array yang tidak bisa kita.
4.Vektor disinkronkan dan arraylist tidak.
5.Vektor dapat menambah ukuran dengan ganda; ArrayList dapat menambahnya sebesar 50%.