Array vs Arraylists
Array adalah struktur data yang paling umum digunakan untuk menyimpan kumpulan elemen. Sebagian besar bahasa pemrograman menyediakan metode untuk dengan mudah mendeklarasikan array dan mengakses elemen dalam array. Arraylist dapat dilihat sebagai array dinamis, yang dapat tumbuh dalam ukuran. Karena alasan ini, programmer tidak perlu mengetahui ukuran dari arraylist ketika dia mendefinisikannya.
Apa itu Array?
Ditampilkan pada gambar 1, adalah bagian dari kode yang biasanya digunakan untuk mendeklarasikan dan menetapkan nilai ke array. Gambar 2 menggambarkan bagaimana sebuah array akan terlihat seperti dalam memori.
nilai int [5]; nilai [0] = 100; nilai [1] = 101; nilai [2] = 102; nilai [3] = 103; nilai [4] = 104; |
Gambar 1: Kode untuk mendeklarasikan dan menetapkan nilai ke array
100 | 101 | 102 | 103 | 104 |
Indeks: 0 | 1 | 2 | 3 | 4 |
Gambar 2: Array tersimpan di dalam memori
Kode di atas, mendefinisikan sebuah array yang dapat menyimpan 5 bilangan bulat dan mereka diakses menggunakan indeks 0 hingga 4. Salah satu properti penting dari array adalah bahwa, seluruh array dialokasikan sebagai satu blok memori dan setiap elemen mendapatkan ruangnya sendiri dalam array. . Setelah array didefinisikan, ukurannya tetap. Jadi jika Anda tidak yakin tentang ukuran array pada waktu kompilasi, Anda harus mendefinisikan array yang cukup besar untuk berada di sisi yang aman. Tetapi, sebagian besar waktu, kita sebenarnya akan menggunakan lebih sedikit elemen daripada yang telah kita alokasikan. Jadi sejumlah besar memori sebenarnya terbuang sia-sia. Di sisi lain jika "array cukup besar" sebenarnya tidak cukup besar, program akan macet.
Apa itu Arraylist??
Arraylist dapat dilihat sebagai array dinamis, yang dapat tumbuh dalam ukuran. Oleh karena itu daftar array sangat ideal untuk digunakan dalam situasi di mana Anda tidak tahu ukuran elemen yang diperlukan pada saat deklarasi. Di Jawa, arraylists hanya bisa menampung objek, mereka tidak bisa memegang tipe primitif secara langsung (Anda bisa meletakkan tipe primitif di dalam objek atau menggunakan kelas wrapper dari tipe primitif). Secara umum arraylist disediakan dengan metode untuk melakukan penyisipan, penghapusan dan pencarian. Kompleksitas waktu mengakses elemen adalah o (1), sedangkan penyisipan dan penghapusan memiliki kompleksitas waktu o (n). Di Jawa, daftar array dapat dilintasi menggunakan foreach loop, iterator atau hanya menggunakan indeks.
Apa perbedaan antara Array dan Arraylists
Meskipun array dan array sama dalam arti bahwa keduanya digunakan untuk menyimpan koleksi elemen, mereka berbeda dalam cara mereka didefinisikan. Ukuran array harus diberikan ketika array didefinisikan, tetapi Anda dapat mendefinisikan daftar array tanpa mengetahui ukuran sebenarnya. Anda bisa menambahkan elemen ke daftar array setelah ditentukan dan ini tidak mungkin dengan array. Tetapi di Jawa, arraylists tidak dapat menyimpan tipe primitif, tetapi array dapat digunakan untuk menyimpan tipe primitif. Tetapi jika Anda membutuhkan struktur data yang dapat memvariasikan ukurannya, arraylist akan menjadi pilihan terbaik.