Perbezaan antara Array dan Arraylists

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 di dalam tatasusunan. Senarai array boleh dilihat sebagai array yang dinamik, yang boleh membesar. Oleh sebab itu, pengaturcara tidak perlu mengetahui saiz senarai array apabila dia menentukannya.

Apa yang Array?

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

nilai int [5];

nilai [0] = 100;

nilai [1] = 101;

nilai [2] = 102;

nilai [3] = 103;

nilai [4] = 104;

Rajah 1: Kod untuk mengisytiharkan dan menyerahkan nilai kepada tatasusunan


100 101 102 103 104
Indeks: 0 1 2 3 4

Rajah 2: Array yang disimpan dalam memori

Kod di atas, menentukan array yang boleh menyimpan 5 bilangan bulat dan mereka diakses dengan menggunakan indeks 0 hingga 4. Satu sifat penting dalam suatu array ialah, keseluruhan array diperuntukkan sebagai satu blok memori dan setiap elemen mendapat ruang sendiri dalam array . Setelah array ditakrifkan, saiznya ditetapkan. Jadi, jika anda tidak pasti tentang 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.

Apa itu Arraylists?

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.

Apakah perbezaan antara Arrays dan Arraylists?

Walaupun tatasusunan dan tatasusunan adalah serupa dalam erti kata bahawa kedua-duanya digunakan untuk menyimpan koleksi elemen, 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, arraylists tidak dapat memegang 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.