Perbedaan Kunci – ArrayList vs LinkedList
Koleksi berguna untuk menyimpan data. Dalam array normal, ukuran array adalah tetap. Terkadang diperlukan untuk membuat array yang dapat berkembang sesuai kebutuhan. Bahasa pemrograman seperti Java memiliki koleksi. Ini adalah kerangka kerja dengan satu set kelas dan antarmuka. Ini berfungsi sebagai wadah untuk sekelompok elemen. Koleksi memungkinkan untuk menyimpan, memperbarui, mengambil set elemen. Ini membantu untuk bekerja dengan struktur data seperti daftar, set, pohon dan peta. Daftar ini adalah antarmuka kerangka Koleksi. ArrayList dan LinkedList adalah dua kelas dalam kerangka koleksi. Mereka mengimplementasikan antarmuka koleksi dan antarmuka Daftar. Artikel ini membahas perbedaan antara ArrayList dan LinkedList. ArrayList adalah kelas yang memperluas AbstractList dan mengimplementasikan antarmuka Daftar, yang secara internal menggunakan array dinamis untuk menyimpan elemen data. LinkedList adalah kelas yang memperluas AbstractSequentialList dan mengimplementasikan antarmuka Daftar, Deque, dan Antrian, yang secara internal menggunakan daftar tertaut ganda untuk menyimpan elemen data. Itulah perbedaan utama antara ArrayList dan LinkedList.
Apa itu ArrayList?
Kelas ArrayList digunakan untuk membuat array dinamis. Tidak seperti array normal, ukuran array dinamis tidak tetap. Objek yang dibuat menggunakan kelas ArrayList diizinkan untuk menyimpan satu set elemen dalam daftar. Kapasitas meningkat secara otomatis, sehingga programmer dapat menambahkan elemen ke dalam daftar. Kelas ArrayList memperluas kelas AbstractList yang mengimplementasikan antarmuka Daftar. Oleh karena itu, metode antarmuka Daftar dapat digunakan oleh ArrayList. Untuk mengakses elemen, metode get() digunakan. Metode add() dapat digunakan untuk menambahkan elemen ke daftar. Metode remove() digunakan untuk menghapus elemen dari daftar. Lihat program di bawah ini.
Gambar 01: Contoh ArrayList
Menurut program di atas, objek ArrayList dibuat. Menggunakan metode add, elemen dapat ditambahkan secara dinamis. Elemen "A", "B", "C", "D" dan "E" ditambahkan menggunakan metode tambah. Metode hapus digunakan untuk menghapus elemen dari daftar. Saat meneruskan 4 ke metode hapus, huruf dalam indeks ke-4 yaitu "E" dihapus dari daftar. Saat mengulangi daftar menggunakan for loop, huruf A, B, C dan D akan dicetak.
Apa itu LinkedList?
Mirip dengan ArrayList, LinkedList digunakan untuk menyimpan elemen data secara dinamis. Objek yang dibuat menggunakan kelas LinkedList diizinkan untuk menyimpan satu set elemen dalam daftar. Kapasitas meningkat secara otomatis, sehingga programmer dapat menambahkan elemen ke dalam daftar. Ini secara internal menggunakan daftar tertaut ganda untuk menyimpan data. Dalam daftar tertaut ganda, data disimpan sebagai node. Setiap node berisi dua link. Tautan pertama menunjuk ke simpul sebelumnya. Tautan berikutnya menunjuk ke simpul berikutnya dalam urutan.
Kelas LinkedList memperluas kelas AbstractSequentialList dan mengimplementasikan antarmuka Daftar. Oleh karena itu, metode antarmuka Daftar dapat digunakan oleh LinkedList. Metode get() dapat digunakan untuk mengakses elemen daftar. Metode add() dapat digunakan untuk menambahkan elemen ke daftar. Metode remove() digunakan untuk menghapus elemen dari daftar. Lihat program di bawah ini.
Gambar 02: Contoh dengan LinkedList
Menurut program di atas, objek LinkedList dibuat. Menggunakan metode add, elemen dapat ditambahkan secara dinamis. Elemen "A", "B", "C", "D" dan "E" ditambahkan menggunakan metode tambah. Metode hapus digunakan untuk menghapus elemen dari daftar. Saat meneruskan 4 ke metode hapus, huruf dalam indeks ke-4 yaitu "E" dihapus dari daftar. Saat iterasi menggunakan for loop, huruf A, B, C dan D akan dicetak.
Apa Persamaan Antara ArrayList dan LinkedList?
- ArrayList dan LinkedList mengimplementasikan antarmuka Daftar.
- ArrayList dan LinkedList dapat berisi elemen duplikat.
- Baik ArrayList dan LinkedList mempertahankan urutan penyisipan.
Apa Perbedaan ArrayList dan LinkedList?
ArrayList vs LinkedList |
|
ArrayList adalah kelas yang memperluas AbstractList dan mengimplementasikan antarmuka Daftar yang secara internal menggunakan array dinamis untuk menyimpan elemen data. | LinkedList adalah kelas yang memperluas AbstractSequentialList dan mengimplementasikan antarmuka Daftar, Deque, Antrian, yang secara internal menggunakan daftar tertaut ganda untuk menyimpan elemen data. |
Mengakses Elemen | |
Mengakses elemen ArrayList lebih cepat daripada LinkedList. | Mengakses elemen LinkedList lebih lambat daripada ArrayList. |
Memanipulasi Elemen | |
Memanipulasi elemen ArrayList lebih lambat daripada LinkedList. | Memanipulasi elemen LinkedList lebih cepat daripada ArrayList. |
Perilaku | |
ArrayList berfungsi sebagai Daftar. | LinkedList berfungsi sebagai Daftar dan Antrian. |
Ringkasan – ArrayList vs LinkedList
Kerangka pengumpulan memungkinkan bekerja dengan struktur data seperti daftar, pohon, peta, dan set. Daftar ini adalah antarmuka kerangka kerja koleksi. Artikel ini membahas perbedaan antara ArrayList dan LinkedList. ArrayList adalah kelas yang memperluas AbstractList dan mengimplementasikan antarmuka Daftar yang secara internal menggunakan array dinamis untuk menyimpan elemen data. LinkedList adalah kelas yang memperluas AbstractSequentialList dan mengimplementasikan antarmuka Daftar, Deque, Antrian, yang secara internal menggunakan daftar tertaut ganda untuk menyimpan elemen data. Itulah perbedaan antara ArrayList dan LinkedList.