Perbezaan Utama - ArrayList vs LinkedList
Koleksi berguna untuk menyimpan data. Dalam tatasusunan biasa, ukuran susunan tetap. Kadang-kadang diperlukan untuk membuat tatasusunan yang dapat tumbuh sesuai keperluan. Bahasa pengaturcaraan seperti Java mempunyai koleksi. Ini adalah kerangka kerja dengan sekumpulan kelas dan antara muka. Ia berfungsi sebagai wadah untuk sekumpulan unsur. Koleksi memungkinkan untuk menyimpan, mengemas kini, mengambil set elemen. Ia membantu bekerja dengan struktur data seperti senarai, set, pokok dan peta. Senarai itu adalah antara muka kerangka Koleksi. ArrayList dan LinkedList adalah dua kelas dalam kerangka koleksi. Mereka melaksanakan antara muka koleksi dan antara muka Daftar. Artikel ini membincangkan perbezaan antara ArrayList dan LinkedList. ArrayList adalah kelas yang memperluas AbstractList dan melaksanakan antara muka List, yang secara dalaman menggunakan array dinamik untuk menyimpan elemen data. LinkedList adalah kelas yang memperluas AbstractSequentialList dan menerapkan antara muka List, Deque, dan Queue, yang secara dalaman menggunakan senarai yang dipaut dua kali untuk menyimpan elemen data. Itulah perbezaan utama antara ArrayList dan LinkedList.
KANDUNGAN
1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apa itu ArrayList
3. Apa itu LinkedList
4. Persamaan Antara ArrayList dan LinkedList
5. Side by Side Comparison - ArrayList vs LinkedList dalam Jadual Form
6. Ringkasan
Apa itu ArrayList?
Kelas ArrayList digunakan untuk membuat susunan dinamik. Tidak seperti array biasa, ukuran array dinamik tidak tetap. Objek yang dibuat menggunakan kelas ArrayList dibenarkan menyimpan sekumpulan elemen dalam senarai. Kapasiti meningkat secara automatik, sehingga pengaturcara dapat menambahkan elemen ke dalam daftar. Kelas ArrayList meluaskan kelas AbstractList yang melaksanakan antara muka List. Oleh itu, kaedah antara muka Daftar dapat digunakan oleh ArrayList. Untuk mengakses elemen, kaedah get () digunakan. Kaedah add () boleh digunakan untuk menambahkan elemen ke dalam senarai. Kaedah remove () digunakan untuk membuang elemen dari senarai. Rujuk program di bawah.
Gambar 01: Contoh ArrayList
Menurut program di atas, objek ArrayList dibuat. Dengan menggunakan kaedah tambah, elemen dapat ditambahkan secara dinamik. Unsur-unsur "A", "B", "C", "D" dan "E" ditambahkan menggunakan metode tambah. Kaedah hapus digunakan untuk membuang unsur dari senarai. Ketika meneruskan 4 ke kaedah hapus, huruf dalam indeks ke-4 yang merupakan "E" dikeluarkan dari daftar. Semasa mengulangi senarai menggunakan gelung untuk, huruf A, B, C dan D akan dicetak.
Apa itu LinkedList?
Mirip dengan ArrayList, LinkedList digunakan untuk menyimpan elemen data secara dinamik. Objek yang dibuat menggunakan kelas LinkedList dibenarkan menyimpan sekumpulan elemen dalam senarai. Kapasiti meningkat secara automatik, sehingga pengaturcara dapat menambahkan elemen ke dalam daftar. Secara dalaman menggunakan senarai berganda yang dipautkan untuk menyimpan data. Dalam senarai yang dihubungkan dua kali ganda, data disimpan sebagai nod. Setiap nod mengandungi dua pautan. Pautan pertama menunjukkan nod sebelumnya. Pautan seterusnya menunjuk ke simpul seterusnya dalam urutan.
Kelas LinkedList meluaskan kelas AbstractSequentialList dan melaksanakan antara muka List. Oleh itu, kaedah antara muka Senarai boleh digunakan oleh LinkedList. Kaedah get () boleh digunakan untuk mengakses elemen dalam senarai. Kaedah add () boleh digunakan untuk menambahkan elemen ke dalam senarai. Kaedah remove () digunakan untuk membuang elemen dari senarai. Rujuk program di bawah.
Gambar 02: Contoh dengan LinkedList
Menurut program di atas, objek LinkedList dibuat. Dengan menggunakan kaedah tambah, elemen dapat ditambahkan secara dinamik. Unsur-unsur "A", "B", "C", "D" dan "E" ditambahkan menggunakan metode tambah. Kaedah hapus digunakan untuk membuang unsur dari senarai. Ketika meneruskan 4 ke kaedah hapus, huruf dalam indeks ke-4 yang "E" akan dikeluarkan dari daftar. Semasa berulang menggunakan gelung untuk, huruf A, B, C dan D akan dicetak.
Apakah Persamaan Antara ArrayList dan LinkedList?
- Kedua-dua ArrayList dan LinkedList melaksanakan antara muka Senarai.
- ArrayList dan LinkedList boleh mengandungi unsur pendua.
- Kedua ArrayList dan LinkedList mengekalkan susunan penyisipan.
Apakah Perbezaan Antara ArrayList dan LinkedList?
Artikel Diff Tengah sebelum Jadual
ArrayList vs LinkedList |
|
ArrayList adalah kelas yang meluaskan AbstractList dan menerapkan antara muka List yang secara dalaman menggunakan array dinamik untuk menyimpan elemen data. | LinkedList adalah kelas yang memanjangkan AbstractSequentialList dan mengimplementasikan antaramuka List, Deque, Queue, yang secara dalaman menggunakan senarai dua kali ganda untuk menyimpan elemen data. |
Mengakses Elemen | |
Mengakses elemen ArrayList lebih pantas berbanding LinkedList. | Mengakses elemen LinkedList lebih lambat daripada ArrayList. |
Memanipulasi Elemen | |
Memanipulasi elemen ArrayList lebih lambat daripada LinkedList. | Memanipulasi elemen LinkedList lebih pantas daripada ArrayList. |
Kelakuan | |
ArrayList berfungsi sebagai Senarai. | LinkedList berfungsi sebagai Senarai dan Antrian. |
Ringkasan - ArrayList vs LinkedList
Kerangka pengumpulan membolehkan bekerja dengan struktur data seperti senarai, pokok, peta dan set. Senarai itu adalah antara muka kerangka pengumpulan. Artikel ini membincangkan perbezaan antara ArrayList dan LinkedList. ArrayList adalah kelas yang memperluas AbstractList dan menerapkan antara muka List yang secara dalaman menggunakan array dinamik untuk menyimpan elemen data. LinkedList adalah kelas yang memanjangkan AbstractSequentialList dan mengimplementasikan antaramuka List, Deque, Queue, yang secara dalaman menggunakan senarai dua kali ganda untuk menyimpan elemen data. Itulah perbezaan antara ArrayList dan LinkedList.