Arraylist vs Vektor
Senarai susunan dapat dilihat sebagai tatasusunan dinamis, yang dapat bertambah besar. Atas sebab ini, pengaturcara tidak perlu mengetahui ukuran senarai tatasusunan ketika dia menentukannya. Vektor juga dapat dilihat sebagai susunan yang dapat tumbuh dalam ukuran. Vektor dapat diagihkan dengan mudah dan dapat digunakan ketika ukuran penyimpanan yang diperlukan tidak diketahui hingga waktu berjalan.
Apa itu Arraylist?
Senarai susunan dapat dilihat sebagai tatasusunan dinamis, yang dapat bertambah besar. Oleh itu, senarai susunan sangat sesuai untuk digunakan dalam keadaan di mana anda tidak mengetahui ukuran elemen yang diperlukan pada masa pengisytiharan. Di Java, daftar array hanya dapat menahan objek, mereka tidak dapat menyimpan jenis primitif secara langsung (anda boleh memasukkan jenis primitif di dalam objek atau menggunakan kelas pembungkus jenis primitif). Umumnya senarai tatasusunan diberikan kaedah untuk melakukan penyisipan, penghapusan dan pencarian. Kerumitan masa untuk mengakses elemen adalah o (1), sementara penyisipan dan penghapusan mempunyai kerumitan waktu o (n). Di Java, daftar array dapat dilalui menggunakan loop depan, iterator atau hanya menggunakan indeks. Di Java, daftar array diperkenalkan dari versi 1.2 dan itu adalah bagian dari Java Collections Framework.
Apa itu Vektor?
Vektor juga merupakan susunan yang boleh bertambah besar. Vektor dapat diagihkan dengan mudah dan dapat digunakan apabila ukuran penyimpanan yang diperlukan tidak diketahui hingga waktu operasi. Vektor juga hanya dapat menahan objek dan tidak boleh memegang jenis primitif. Vektor diselaraskan, oleh itu dapat digunakan dengan selamat di persekitaran multithreaded. Vektor disediakan kaedah untuk menambah objek, menghapus objek dan mencari objek. Sama dengan senarai array di java, vektor dapat dilalui menggunakan loop depan, iterator atau hanya menggunakan indeks. Ketika datang ke Java, vektor telah dimasukkan sejak versi pertama Java.
Apakah perbezaan antara Arraylist dan Vector?
Walaupun kedua-dua senarai susunan dan vektor sangat mirip dengan tatasusunan dinamik yang boleh bertambah besar, mereka mempunyai beberapa perbezaan penting. Perbezaan utama antara senarai susunan dan vektor adalah bahawa vektor diselaraskan sedangkan senarai tatarajah tidak diselaraskan. Oleh itu, menggunakan senarai tatasusunan di persekitaran multithreaded tidak akan sesuai, sedangkan vektor boleh digunakan dengan selamat di persekitaran multithreaded (kerana ia selamat pada benang). Tetapi penyegerakan dalam vektor akan menyebabkan penurunan prestasi. Oleh itu, bukan idea yang baik untuk menggunakan vektor dalam persekitaran berulir tunggal Secara dalaman, kedua senarai array dan vektor menggunakan tatasusunan untuk menahan objek. Apabila ruang semasa tidak mencukupi, vektor akan menggandakan ukuran tatasusunan dalamannya, sementara senarai tatabahasa meningkatkan ukuran susunan dalamannya sebanyak 50%. Tetapi apabila menggunakan senarai susunan dan vektor, dengan memberikan kapasiti awal yang sesuai, ukuran semula array dalaman yang tidak perlu dapat dielakkan. Dalam situasi yang diketahui kadar pertumbuhan data, penggunaan vektor akan lebih sesuai kerana nilai vektor tambahan dapat ditentukan.