Vector VS ArrayList
Dalam bahasa pemrograman C, kita mengenal struktur data. Sedangkan dalam bahasa pemrograman Java, kita mengenal array dinamis, yaitu vector dan arraylist. Dalam penggunaannya, terkadang vector dan arraylist dianggap sama. Dalam format penggunaannya juga sama, berikut adalah contoh penggunaannya:
- Vector vec = new Vector
(); - ArrayList arr = new ArrayList
();
Beberapa fungsi yang mereka punya juga beberapa sama, tetapi ada juga yang berbeda. Berikut adalah perbedaan vector dan arraylist:
- Synchronization
ArrayList tidak tersinkronisasi, jadi memungkinkan untuk beberapa threads yang sedang beroperasi secara bersamaan. Sedangkan vector tidak tersinkronisasi, hanya bisa satu vector yang beroperasi dengan vector tersebut.
- Resize
Meskipun sama-sama bersifat dinamis, cara arraylist dan vector memperbesar ukurannya berbeda. arrayList mengubah ukurannya sebesar setengah dari ukurannya. Sedangkan vector melipat menggandakan ukurannya. arrayList bisa digunakan untuk menghemat memori.
- Performance
arrayList dianggap lebih baik performanya dibandingkan dengan vector. Sebenarnya ini ada kaitannya dengan sinkronisasi yang sudah dibahas di atas. Karena hanya dalam konteks vector, sebuah tread akan terkunci ketika sedang beroperasi, jadi thread lain harus menunggu thread tersebut terlebih dahulu.
- Fail-fast
Fail-fast adalah ketika sebuah collection (arrayList, vector, etc) secara struktural dimodifikasi dengan cara apapun, kecuali menggunakan add atau remove pada iterator method, maka iterator akan melempar ConcurrentModificationException. Berdasarkan Javadoc, enumerasi yang dikembalikan oleh vector tidak fail-fast, sedangkan pada arrayList fail-fast
Referensi :
Lakhani, N. (2016). What are the differences between ArrayList and Vector?. [online] Stack Overflow. Available at: https://stackoverflow.com/questions/2986296/what-are-the-differences-between-arraylist-and-vector [Accessed 18 Jul. 2018].