Perbezaan Antara Arrays dan Arraylists

Anonim

Array vs Arraylists

Array adalah struktur data yang paling biasa digunakan untuk menyimpan koleksi elemen. Kebanyakan bahasa pengaturcaraan menyediakan kaedah untuk mengisytiharkan unsur-unsur tatasusunan dan akses dengan mudah dalam tatasusunan. Senarai array dapat dilihat sebagai array yang dinamik, yang dapat bertambah besar. Oleh sebab itu, pengaturcara tidak perlu mengetahui saiz senarai array apabila dia menentukannya.

Apa Array?

Ditunjukkan dalam angka 1, adalah sekeping kod yang biasanya digunakan untuk mengisytiharkan dan memberikan nilai kepada array. Rajah 2 menggambarkan bagaimana array akan kelihatan seperti dalam ingatan.

nilai int [5]; Nilai

[0] = 100; Nilai

[1] = 101; Nilai

[2] = 102;

nilai [3] = 103;

nilai [4] = 104;

100

102 103 104 Indeks: 0 1
2 < 3 4
Rajah 2: Array yang disimpan dalam memori Kod di atas, mentakrifkan satu array yang boleh menyimpan 5 bilangan bulat dan mereka diakses dengan menggunakan indeks 0 hingga 4. Satu sifat penting dalam suatu array ialah, array keseluruhan diperuntukkan sebagai satu blok memori dan setiap elemen mendapat ruang sendiri dalam array. Setelah array ditakrifkan, saiznya ditetapkan. Oleh itu, jika anda tidak pasti mengenai saiz array pada masa penyusunan, anda perlu menentukan array yang cukup besar untuk berada di bahagian yang selamat. Tetapi, kebanyakan masa, kita sebenarnya akan menggunakan kurang bilangan unsur daripada yang kita peruntukkan. Oleh itu, sejumlah besar memori sebenarnya sia-sia. Sebaliknya jika "array yang cukup besar" tidak cukup besar, program itu akan terhempas.
Apakah Arraylists?

Senarai array dapat dilihat sebagai array yang dinamik, yang dapat bertambah besar. Oleh itu arrayl sangat ideal untuk digunakan dalam keadaan di mana anda tidak mengetahui saiz elemen yang diperlukan pada masa perisytiharan. Dalam 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 mencari. Kerumitan masa untuk mengakses elemen adalah o (1), sementara penyisipan dan penghapusan mempunyai kerumitan masa o (n). Di Jawa, arraylists boleh dilalui menggunakan gelung foreach, iterators atau hanya menggunakan indeks.

Apakah perbezaan antara Arrays dan Arraylists

Walaupun tatasusunan dan tatasusunan adalah serupa dalam erti kata bahawa kedua-duanya digunakan untuk menyimpan koleksi unsur-unsur, mereka berbeza dengan cara mereka ditakrifkan. Saiz array perlu diberikan apabila array ditakrifkan, tetapi anda boleh menentukan senarai array tanpa mengetahui saiz sebenar. Anda boleh menambah elemen pada senarai array selepas ditakrifkan dan ini tidak mungkin dengan tatasusunan.Tetapi di Jawa, array tidak boleh menahan jenis primitif, tetapi array boleh digunakan untuk memegang jenis primitif. Tetapi jika anda memerlukan struktur data yang boleh mengubah saiznya, arraylist akan menjadi pilihan terbaik.