Array vs Daftar Array
Array adalah struktur data yang paling umum digunakan untuk menyimpan kumpulan elemen. Sebagian besar bahasa pemrograman menyediakan metode untuk mendeklarasikan array dengan mudah dan mengakses elemen dalam array. Arraylist dapat dilihat sebagai array dinamis, yang dapat bertambah besar ukurannya. Karena alasan ini, programmer tidak perlu mengetahui ukuran daftar array saat mendefinisikannya.
Apa itu Array?
Ditunjukkan pada gambar 1, adalah bagian dari kode yang biasanya digunakan untuk mendeklarasikan dan menetapkan nilai ke array. Gambar 2 menggambarkan bagaimana array akan terlihat seperti di memori.
int nilai[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 disimpan dalam memori
Kode di atas, mendefinisikan array yang dapat menyimpan 5 bilangan bulat dan diakses menggunakan indeks 0 hingga 4. Salah satu properti penting dari array adalah, seluruh array dialokasikan sebagai satu blok memori dan setiap elemen mendapatkan ruang 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 agar aman. Namun, seringkali, 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 Daftar Array?
Daftar array dapat dilihat sebagai array dinamis, yang dapat bertambah besar ukurannya. Oleh karena itu, daftar array ideal untuk digunakan dalam situasi di mana Anda tidak mengetahui ukuran elemen yang diperlukan pada saat deklarasi. Di Java, daftar array hanya dapat menampung objek, mereka tidak dapat menyimpan tipe primitif secara langsung (Anda dapat meletakkan tipe primitif di dalam objek atau menggunakan kelas pembungkus tipe primitif). Umumnya daftar array dilengkapi dengan metode untuk melakukan penyisipan, penghapusan, dan pencarian. Kompleksitas waktu mengakses suatu elemen adalah o(1), sedangkan penyisipan dan penghapusan memiliki kompleksitas waktu o(n). Di Java, daftar array dapat dilalui menggunakan loop foreach, iterator atau hanya menggunakan indeks.
Apa perbedaan antara Array dan Arraylist
Meskipun array dan daftar array serupa dalam arti keduanya digunakan untuk menyimpan koleksi elemen, keduanya berbeda dalam cara mendefinisikannya. Ukuran array harus diberikan ketika array didefinisikan, tetapi Anda dapat mendefinisikan daftar array tanpa mengetahui ukuran sebenarnya. Anda dapat menambahkan elemen ke daftar array setelah didefinisikan dan ini tidak mungkin dilakukan dengan array. Tetapi di Java, daftar array tidak dapat menampung tipe primitif, tetapi array dapat digunakan untuk menampung tipe primitif. Tetapi jika Anda membutuhkan struktur data yang dapat memvariasikan ukurannya, arraylist akan menjadi pilihan terbaik.