Perbezaan antara ArrayList dan LinkedList

Perbezaan Utama - ArrayList vs LinkedList
 

Koleksi berguna untuk menyimpan data. Dalam tatasusunan biasa, saiz seragam ditetapkan. Kadang-kadang diperlukan untuk membuat array yang dapat tumbuh sesuai kebutuhan. Bahasa pengaturcaraan seperti Java mempunyai koleksi. Ia adalah rangka kerja dengan satu set kelas dan antara muka. Ia berfungsi sebagai wadah untuk sekumpulan unsur. Koleksi membenarkan untuk menyimpan, mengemas kini, mengambil semula set elemen. Ia membantu untuk bekerja dengan struktur data seperti senarai, set, pokok dan peta. Senarai ini merupakan antara rangka kerja Koleksi. ArrayList dan LinkedList adalah dua kelas dalam kerangka koleksi. Mereka melaksanakan antara muka koleksi dan antara muka Senarai. Artikel ini membincangkan perbezaan antara ArrayList dan LinkedList. ArrayList adalah kelas yang memanjangkan AbstractList dan mengimplementasikan antara muka Senarai, yang secara dalaman menggunakan array dinamik untuk menyimpan elemen data. LinkedList adalah kelas yang memanjangkan senarai AbstrakSequentialList dan melaksanakan Senarai, 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. Apakah ArrayList
3. Apa itu LinkedList
4. Persamaan Antara ArrayList dan LinkedList
5. Side by Side Comparison - ArrayList vs LinkedList dalam Borang Tabular
6. Ringkasan

Apa itu ArrayList?

Kelas ArrayList digunakan untuk membuat array dinamik. Tidak seperti array biasa, saiz array dinamik tidak tetap. Objek yang dibuat menggunakan kelas ArrayList dibenarkan menyimpan satu set elemen dalam senarai. Kapasiti meningkat secara automatik, jadi programmer dapat menambah elemen ke dalam senarai. Kelas ArrayList memanjangkan kelas AbstractList yang melaksanakan antara muka Senarai. Oleh itu, kaedah antara muka Senarai boleh digunakan oleh ArrayList. Untuk mengakses elemen, kaedah get () digunakan. Kaedah tambah () boleh digunakan untuk menambah unsur ke dalam senarai. Kaedah keluarkan () digunakan untuk mengeluarkan elemen daripada senarai. Rujuk program di bawah.

Rajah 01: Contoh ArrayList

Menurut program di atas, objek ArrayList dicipta. Dengan menggunakan kaedah tambahan, elemen boleh ditambah secara dinamik. Unsur-unsur "A", "B", "C", "D" dan "E" ditambah menggunakan kaedah tambah. Kaedah keluarkan digunakan untuk mengeluarkan elemen dari senarai. Apabila lulus 4 kepada kaedah keluarkan, huruf dalam indeks keempat yang "E" dikeluarkan dari senarai. Apabila melelong melalui senarai menggunakan gelung, huruf A, B, C dan D akan dicetak.

Apa itu LinkedList?

Sama seperti ArrayList, LinkedList digunakan untuk menyimpan elemen data secara dinamik. Objek yang dibuat menggunakan kelas LinkedList dibenarkan untuk menyimpan satu set elemen dalam senarai. Kapasiti meningkat secara automatik, jadi programmer dapat menambah elemen ke dalam senarai. Ia secara dalaman menggunakan senarai yang dipaut ganda untuk menyimpan data. Dalam senarai yang dipaut dua kali, data disimpan sebagai nod. Setiap nod mengandungi dua pautan. Tautan pertama menunjukkan nod sebelumnya. Titik pautan seterusnya ke nod seterusnya dalam urutan tersebut.

Kelas LinkedList memanjangkan kelas AbstrakSequentialList dan melaksanakan antara muka Senarai. Oleh itu, kaedah antara muka Senarai boleh digunakan oleh LinkedList. Kaedah get () boleh digunakan untuk mengakses elemen senarai. Kaedah tambah () boleh digunakan untuk menambah unsur ke dalam senarai. Kaedah keluarkan () digunakan untuk mengeluarkan elemen daripada senarai. Rujuk program di bawah.

Rajah 02: Contoh dengan LinkedList

Menurut program di atas, objek LinkedList dicipta. Dengan menggunakan kaedah tambahan, elemen boleh ditambah secara dinamik. Unsur-unsur "A", "B", "C", "D" dan "E" ditambah menggunakan kaedah tambah. Kaedah keluarkan digunakan untuk mengeluarkan elemen dari senarai. Apabila lulus 4 kepada kaedah keluarkan, huruf dalam indeks keempat yang "E" akan dikeluarkan dari senarai. Apabila berulang dengan menggunakan gelung, huruf A, B, C dan D akan dicetak.

Apakah Kesamaan Antara ArrayList dan LinkedList?

  • Kedua-dua antara muka Senarai ArrayList dan LinkedList.
  • Kedua-dua ArrayList dan LinkedList boleh mengandungi elemen pendua.
  • Kedua-dua ArrayList dan LinkedList mengekalkan perintah sisipan.

Apakah Perbezaan antara ArrayList dan LinkedList?

ArrayList vs LinkedList

ArrayList adalah kelas yang memanjangkan AbstractList dan mengimplementasikan antara muka Senarai yang secara dalaman menggunakan array dinamik untuk menyimpan elemen data. LinkedList adalah kelas yang memperluaskan senarai AbstrakSequentialList dan melaksanakan, Deque, Antrean antrian, yang secara dalaman menggunakan senarai yang dipaut dua kali untuk menyimpan elemen data.
 Mengakses Elemen
Mengakses elemen ArrayList lebih cepat daripada LinkedList. Mengakses elemen LinkedList lebih lambat daripada ArrayList.
Manipulasi Elemen
Manipulasi elemen ArrayList lebih lambat daripada LinkedList. Manipulasi elemen LinkedList lebih cepat daripada ArrayList.
 Kelakuan
ArrayList melaksanakan sebagai Senarai. LinkedList melakukan sebagai Senarai dan Baris.

Ringkasan - ArrayList vs LinkedList

Rangka kerja pengumpulan membolehkan kerja dengan struktur data seperti senarai, pokok, peta dan set. Senarai ini merupakan antara rangka kerja koleksi. Artikel ini membincangkan perbezaan antara ArrayList dan LinkedList. ArrayList adalah kelas yang memanjangkan AbstractList dan mengimplementasikan antara muka Senarai yang secara dalaman menggunakan array dinamik untuk menyimpan unsur data. LinkedList adalah kelas yang memperluaskan senarai AbstrakSequentialList dan melaksanakan, Deque, Queue interface, yang secara dalaman menggunakan senarai terluas untuk menyimpan elemen data. Itulah perbezaan antara ArrayList dan LinkedList.

Rujukan:

1. Pengenalan kepada Senarai Berkaitan | Tutorial Struktur Data | Studytonight. Terdapat di sini
2. "LinkedList di Java - javatpoint.", The Point, Available here
3. "Kelas Java ArrayList - javatpoint." Titik, Boleh didapati di sini