ArrayList vs vektor
Daftar array 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 daftar array?
Daftar array 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 Java, daftar array hanya dapat memegang objek, mereka tidak dapat memegang tipe primitif secara langsung (Anda dapat meletakkan tipe primitif di dalam suatu objek atau menggunakan kelas pembungkus tipe primitif). Umumnya daftar array diberikan metode untuk melakukan penyisipan, penghapusan dan pencarian. Kompleksitas waktu mengakses elemen adalah O (1), sementara penyisipan dan penghapusan memiliki kompleksitas waktu O (n). Di Java, daftar array dapat dilalui menggunakan loop foreach, iterator atau hanya menggunakan indeks. Di Java, daftar array diperkenalkan dari versi 1.2 dan itu adalah bagian dari kerangka kerja koleksi java.
Apa itu vektor?
Vektor juga merupakan array yang dapat tumbuh dalam ukuran. Vektor dapat dengan mudah dialokasikan dan dapat digunakan saat ukuran penyimpanan yang diperlukan tidak diketahui sampai runtime. Vektor juga hanya dapat memegang objek dan tidak dapat memegang tipe primitif. Vektor disinkronkan, oleh karena itu dapat digunakan dengan aman di lingkungan multithreaded. Vektor disediakan dengan metode untuk menambahkan objek, menghapus objek dan objek pencarian. Mirip dengan ArrayList di Java, vektor dapat dilalui menggunakan loop foreach, iterator atau hanya menggunakan indeks. Ketika datang ke Java, vektor telah dimasukkan sejak versi pertama Java.
Apa perbedaan antara arraylist dan vektor?
Meskipun baik arraylist dan vektor sangat mirip dengan array dinamis yang dapat tumbuh dalam ukuran, mereka memiliki beberapa perbedaan penting. Perbedaan utama antara daftar array dan vektor adalah bahwa vektor disinkronkan sedangkan arraylist tidak disinkronkan. Oleh karena itu menggunakan daftar array di lingkungan multithreading tidak akan cocok, sementara vektor dapat digunakan dengan aman di lingkungan multithreaded (karena mereka aman). Tetapi sinkronisasi dalam vektor akan menyebabkan pengurangan kinerja. Oleh karena itu bukan ide yang baik untuk menggunakan vektor di lingkungan berulir tunggal. Secara internal, baik arraylist dan vektor menggunakan array untuk memegang objek. Ketika ruang saat ini tidak cukup, vektor akan menggandakan ukuran array internalnya, sementara arraylist meningkatkan ukuran array internalnya sebesar 50%. Tetapi saat menggunakan daftar array dan vektor, dengan memberikan kapasitas awal yang sesuai, pengubah ukuran yang tidak perlu dari array internal dapat dihindari. Dalam situasi bahwa tingkat pertumbuhan data diketahui, menggunakan vektor akan lebih cocok karena nilai tambahan vektor dapat didefinisikan.