Arrays vs ArrayLists
Array adalah struktur data yang paling biasa digunakan untuk menyimpan koleksi elemen. Kebanyakan bahasa pengaturcaraan menyediakan kaedah untuk mengisytiharkan array dan elemen akses dengan mudah. ArrayList dapat dilihat sebagai array dinamik, yang dapat tumbuh dalam ukuran. Oleh sebab itu, pengaturcara tidak perlu mengetahui saiz arraylist ketika dia mendefinisikannya.
Apa itu tatasusunan?
Ditunjukkan dalam Rajah 1, adalah sekeping kod yang biasanya digunakan untuk mengisytiharkan dan memberikan nilai kepada array. Rajah 2 menggambarkan bagaimana array 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 array
100 | 101 | 102 | 103 | 104 |
Indeks: 0 | 1 | 2 | 3 | 4 |
Rajah 2: Arahan disimpan dalam ingatan
Di atas kod, mentakrifkan array yang boleh menyimpan 5 bilangan bulat dan mereka diakses menggunakan indeks 0 hingga 4. Satu harta penting dalam array ialah, keseluruhan array diperuntukkan sebagai satu blok memori dan setiap elemen mendapat ruang sendiri dalam array. Setelah array ditakrifkan, saiznya tetap. Oleh itu, jika anda tidak pasti mengenai saiz array pada masa penyusunan, anda perlu menentukan array yang cukup besar untuk berada di sisi yang selamat. Tetapi, kebanyakan masa, kita sebenarnya akan menggunakan kurang bilangan elemen daripada yang telah kita peruntukkan. Oleh itu, sejumlah besar memori sebenarnya sia -sia. Sebaliknya jika "array cukup besar" sebenarnya tidak cukup besar, program itu akan terhempas.
Apa itu arraylist?
ArrayList dapat dilihat sebagai array dinamik, yang dapat tumbuh dalam ukuran. Oleh itu arraylists sesuai untuk digunakan dalam situasi di mana anda tidak mengetahui saiz unsur -unsur yang diperlukan pada masa pengisytiharan. Di Java, ArrayLists hanya boleh memegang objek, mereka tidak dapat memegang jenis primitif secara langsung (anda boleh meletakkan jenis primitif di dalam objek atau menggunakan kelas pembalut jenis primitif). Secara amnya ArrayLists disediakan dengan kaedah untuk melakukan penyisipan, penghapusan dan pencarian. Kerumitan masa mengakses elemen adalah O (1), manakala penyisipan dan penghapusan mempunyai kerumitan masa O (n). Di Jawa, ArrayLists boleh dilalui menggunakan gelung foreach, iterators atau hanya menggunakan indeks.
Apakah perbezaan antara array dan arraylists
Walaupun array dan arraylists serupa dalam erti kata bahawa kedua -dua mereka digunakan untuk menyimpan koleksi unsur -unsur, mereka berbeza dengan cara mereka ditakrifkan. Saiz array harus diberikan apabila array ditakrifkan, tetapi anda boleh menentukan arraylist tanpa mengetahui saiz sebenar. Anda boleh menambah elemen ke arraylist setelah ditakrifkan dan ini tidak mungkin dengan array. Tetapi di Java, 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.