School of Information Systems

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].

Fransisca