Daftar Array vs Vektor
Arraylist dapat dilihat sebagai array dinamis, yang dapat tumbuh dalam ukuran. Karena alasan ini, programmer tidak perlu mengetahui ukuran arraylist ketika dia mendefinisikannya. Vektor juga dapat dilihat sebagai array yang dapat tumbuh dalam ukuran. Vektor dapat dengan mudah dialokasikan dan dapat digunakan ketika ukuran penyimpanan yang diperlukan tidak diketahui sampai runtime.
Apa itu Arraylist??
Arraylist dapat dilihat sebagai array dinamis, yang dapat tumbuh dalam ukuran. Oleh karena itu daftar array sangat ideal untuk digunakan dalam situasi di mana Anda tidak tahu ukuran elemen yang diperlukan pada saat deklarasi. Di Jawa, arraylists hanya bisa menampung objek, mereka tidak bisa memegang tipe primitif secara langsung (Anda bisa meletakkan tipe primitif di dalam objek atau menggunakan kelas wrapper dari tipe primitif). Secara umum arraylist disediakan dengan metode untuk melakukan penyisipan, penghapusan dan pencarian. Kompleksitas waktu mengakses elemen adalah o (1), sedangkan penyisipan dan penghapusan memiliki kompleksitas waktu o (n). Di Jawa, daftar array dapat dilintasi menggunakan foreach loop, iterator atau hanya menggunakan indeks. Di Jawa, arraylists diperkenalkan dari versi 1.2 dan itu adalah bagian dari Java Collections Framework.
Apa itu Vektor??
Vektor juga merupakan array yang dapat tumbuh dalam ukuran. Vektor dapat dengan mudah dialokasikan dan dapat digunakan ketika ukuran penyimpanan yang diperlukan tidak diketahui sampai runtime. Vektor juga hanya dapat menampung objek dan tidak dapat menyimpan tipe primitif. Vektor disinkronkan, oleh karena itu dapat digunakan dengan aman di lingkungan multithreaded. Vektor dilengkapi dengan metode untuk menambahkan objek, menghapus objek, dan mencari objek. Mirip dengan arraylist di java, vektor dapat dilalui menggunakan foreach loop, iterators atau hanya menggunakan indeks. Ketika datang ke Jawa, vektor sudah dimasukkan sejak versi pertama Java.
Apa perbedaan antara Arraylist dan Vector?
Meskipun arraylists dan vektor keduanya sangat mirip dengan array dinamis yang dapat tumbuh dalam ukuran, mereka memiliki beberapa perbedaan penting. Perbedaan utama antara arraylists dan vektor adalah bahwa vektor disinkronkan sedangkan arraylist tidak disinkronkan. Oleh karena itu menggunakan arraylists di lingkungan multithreaded tidak akan cocok, sementara vektor dapat digunakan dengan aman di lingkungan multithreaded (karena mereka aman thread). Tetapi sinkronisasi dalam vektor akan menyebabkan penurunan kinerja. Oleh karena itu bukan ide yang baik untuk menggunakan vektor dalam lingkungan berulir tunggal. Secara internal, baik arraylists dan vektor menggunakan array untuk menyimpan objek. Ketika ruang saat ini tidak cukup, vektor akan menggandakan ukuran array internalnya, sementara arraylist meningkatkan ukuran array internalnya sebesar 50%. Tetapi ketika menggunakan array array dan vektor, dengan memberikan kapasitas awal yang sesuai, ukuran array internal yang tidak perlu dapat dihindari. Dalam situasi yang diketahui tingkat pertumbuhan data, menggunakan vektor akan lebih cocok karena nilai inkremental vektor dapat ditentukan.