Arraylist vs Vector
Senarai array boleh dilihat sebagai array yang dinamik, yang boleh membesar. Oleh sebab itu, pengaturcara tidak perlu mengetahui saiz senarai array apabila dia menentukannya. Vektor juga boleh dilihat sebagai tatasusunan yang boleh berkembang dalam saiz. Vektor boleh diperuntukkan dengan mudah dan boleh digunakan apabila saiz simpanan yang diperlukan tidak diketahui sehingga runtime.
Apakah Arraylist itu??
Senarai array boleh dilihat sebagai array yang dinamik, yang boleh membesar. Oleh itu arrayl adalah ideal untuk digunakan dalam keadaan di mana anda tidak mengetahui saiz elemen yang diperlukan pada masa perisytiharan. Di Java, arraylists hanya boleh memegang objek, mereka tidak boleh memegang jenis primitif secara langsung (anda boleh meletakkan jenis primitif di dalam objek atau menggunakan kelas pembalut jenis primitif). Secara umum arraylists disediakan dengan kaedah untuk melakukan kemasukan, penghapusan dan carian. Kerumitan masa untuk mengakses elemen adalah o (1), manakala penyisipan dan penghapusan mempunyai kerumitan masa o (n). Di Jawa, arraylists boleh dilalui menggunakan gelung, penyusun atau hanya menggunakan indeks. Di Jawa, arraylain diperkenalkan dari versi 1.2 dan ia merupakan sebahagian daripada Rangka Kerja Koleksi Java.
Apa itu Vektor?
Vektor juga merupakan tatasusunan yang boleh berkembang dalam saiz. Vektor boleh dengan mudah diperuntukkan dan boleh digunakan apabila saiz simpanan yang diperlukan tidak diketahui sehingga runtime. Vektor juga hanya boleh memegang objek dan tidak boleh memegang jenis primitif. Vektor disegerakkan, oleh itu boleh digunakan dengan selamat dalam persekitaran multithreaded. Vektor disediakan dengan kaedah untuk menambah objek, memadam objek dan objek carian. Serupa dengan arraylist di java, vektor dapat dilalui menggunakan loop foreach, iterators atau hanya menggunakan indeks. Apabila ia datang ke Java, vektor telah dimasukkan sejak versi pertama Java.
Apakah perbezaan antara Arraylist dan Vektor?
Walaupun kedua-dua arraylists dan vektor adalah sangat serupa dengan array dinamik yang boleh berkembang dalam saiz, mereka mempunyai beberapa perbezaan penting. Perbezaan utama antara arraylists dan vektor adalah bahawa vektor disegerakkan manakala arraylists tidak disegerakkan. Oleh itu menggunakan arraylist dalam persekitaran multithreaded tidak akan sesuai, manakala vektor boleh digunakan dengan selamat dalam persekitaran multithreaded (kerana ia adalah benang selamat). Tetapi penyegerakan dalam vektor akan menyebabkan pengurangan prestasi. Oleh itu, ia bukanlah idea yang baik untuk menggunakan vektor dalam satu persekitaran berulir. Secara dalaman, kedua-dua array dan vektor menggunakan array untuk memegang objek. Apabila ruang semasa tidak mencukupi, vektor akan menggandakan saiz susunan dalamannya, manakala arraylist meningkatkan saiz susunan dalamannya sebanyak 50%. Tetapi apabila menggunakan kedua-dua arraylists dan vektor, dengan memberikan kapasiti awal yang sesuai, saiz semula yang tidak perlu dalam array dalaman boleh dielakkan. Dalam keadaan yang kadar pertumbuhan data diketahui, menggunakan vektor akan lebih sesuai kerana nilai vektor tambahan dapat ditentukan.