LinkedList vs ArrayList di Java: Ketahui perbedaan utama



Artikel LinkedList vs ArrayList ini akan memberi Anda perbandingan yang tepat antara daftar yang mengimplementasikan antarmuka daftar

Daftar di Java adalah sub-antarmuka dari yang memberikan solusi optimal dengan konsep seperti akses posisi, iterasi, dan sebagainya. Pada artikel ini, saya akan membahas perbedaan utama antara antarmuka daftar LinkedList vs ArrayList di Java.

Di bawah ini adalah topik yang dibahas dalam artikel ini:





biner ke desimal di java

Mari kita mulai!

Apa itu LinkedList?

Setelah array , struktur data terpopuler kedua pasti a . Daftar tertaut adalah struktur data linier yang dibentuk oleh arantai node di mana setiap node berisi nilai dan apenunjukke simpul berikutnya dalam rantai.Juga, tdia tautan terakhir dalam daftar tertaut menunjuk ke nol, menunjukkan akhir rantai.Elemen dalam daftar tertaut disebut a simpul .Node pertama dalam daftar disebut kepala .Node terakhir disebut ekor .



Izinkan saya memberi Anda contoh sederhana dari ini: Bayangkan rantai penjepit kertas yang dihubungkan bersama. Anda dapat dengan mudah menambahkan penjepit kertas lain ke atas atau bawah. Juga mudah untuk memasukkan satu di tengah. Yang harus Anda lakukan hanyalah memutuskan rantai di tengah, tambahkan penjepit kertas baru, lalu sambungkan kembali setengah lainnya. Daftar yang ditautkan mirip dengan ini.

Contoh:

paket MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) adalah digunakan untuk menambahkan * Item ke daftar tertaut * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Konten Daftar Tertaut:' + l_list) / * Tambahkan Item pada posisi tertentu * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Konten setelah pengeditan: '+ l_list) / * Tambahkan Item Pertama dan Terakhir * / l_list.addFirst (' Kursus Pertama ') l_list.addLast (' Kursus Terakhir ') System.out.println (' l_list Konten setelah penambahan: '+ l_list) / * Dapatkan dan mengatur Item dalam daftar * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content setelah memperbarui Item pertama: '+ l_list) / * Hapus dari posisi * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList setelah penghapusan Item di posisi ke-2 dan ke-3' + l_list) / * Hapus Item pertama dan terakhir * / l_list.removeFirst () l_list.removeLast () System.out.println ('Konten Akhir setelah menghapus Item pertama dan terakhir : '+ l_list) / * Iterasi daftar tertaut * / ListIteratoritrator = l_list.listIterator () System.out.println (' Daftar ditampilkan menggunakan iterator: ') sementara (itrator.hasNext ()) {System.out.println (itrator .lanjut()) } } }

Keluaran:



Konten Daftar Tertaut = {Java, Python, Scala, Swift} Konten setelah pengeditan = {Java, Python, JavaScript, Kotlin, Scala, Swift} Konten setelah penambahan = {Kursus Pertama, Java, Python, JavaScript, Kotlin, Scala, Swift, Kursus Terakhir} Item Pertama = {Kursus Pertama} Konten setelah memperbarui item pertama = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Kursus Terakhir} Konten setelah penghapusan item di posisi ke-2 dan ke-3 = {Java9, Python, Kotlin, Scala, Swift, Last Course} Konten Akhir setelah menghapus pertama dan terakhir Item = {Python, Kotlin, Scala, Swift} Daftar ditampilkan menggunakan iterator = Python Kotlin Scala Swift

Sekarang, mari kita lanjutkan ke topik berikutnya.

Apa itu ArrayList?

adalah implementasi Antarmuka Daftar di mana elemen dapat secara dinamis ditambahkan atau dihapus dari daftar terkait. Di sini, ukuran daftar bertambah secara dinamis jika elemen ditambahkan lebih dari ukuran awal atau sebenarnya. Meskipun mungkin lebih lambat dari array standar, ini dapat membantu dalam program yang membutuhkan banyak manipulasi dalam array.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList digunakan untuk tujuan ini:

  • ArrayList di Java digunakan untuk toko kumpulan elemen berukuran dinamis.
  • Ini diinisialisasi dengan ukuran. Namun, ukurannya dapat bertambah jika koleksi bertambah dan menyusut jika objek dikeluarkan dari .
  • Selain itu, ArrayList memungkinkan Anda mengakses daftar secara acak.

Mari kita lanjutkan dan tunjukkan kesamaan antara LinkedList dan ArrayList di Java.

Persamaan antara LinkedList dan ArrayList

Ini adalah kesamaan penting antara LinkedList dan ArrayList di Java.

  • ArrayList dan LinkedList adalah implementasi dari file Antarmuka daftar .
  • Baik ArrayList dan LinkedList mempertahankan urutan penyisipan elemen. Ini berarti bahwa, saat menampilkan elemen List, kumpulan hasil akan memiliki urutan yang sama di mana elemen tersebut dimasukkan ke dalam List.
  • Kelas TheseArrayList dan LinkedList tidak disinkronkan dan dapat disinkronkan secara eksplisit dengan menggunakan CollectionsSynchronizedList metode.
  • Iterator dan ListIterator yang dikembalikan oleh kelas-kelas ini cepat gagal. Artinya, jika daftar diubah secara struktural pada waktu tertentu setelah iterator dibuat, kecualimenghapus atau menambahkan metode iterator sendiri, iterator akan melempar ConcurrentModificationException .

Perbedaan antara LinkedList dan ArrayList

Pertama, mari kita lihat parameter untuk membandingkan LinkedList vs ArrayList di Java.

Parameter untuk membandingkan LinkedList dan ArrayList di Java:

  • Operasi
  • Penerapan
  • Proses
  • Penyimpanan
  1. Operasi

Operasi penyisipan, penambahan, dan penghapusan item lebih cepat di a LinkedList karena kami tidak perlu mengubah ukuran seperti yang kami lakukan di ArrayList.

2. Penerapan

ArrayList didasarkan pada konsep larik yang dapat diubah ukurannya secara dinamis, sementara LinkedList didasarkan pada penerapan daftar tertaut ganda

3. Proses

UNTUK LinkedList class dapat digunakan sebagai list dan antrian karena mengimplementasikan antarmuka List dan Deque sedangkan ArrayList hanya dapat mengimplementasikan List.

Empat. Penyimpanan

UNTUK LinkedList mengkonsumsi lebih banyak memori daripada ArrayList karena setiap node di LinkedList menyimpan dua referensi, sedangkan ArrayList hanya menyimpan data dan indeksnya

LinkedList vs ArrayList di Java

ParameterLinkedListArrayList
Operasi

Operasi penyisipan, penambahan, dan penghapusan cukup lebih cepat

Operasi yang relatiflambat di sini

Penerapan

Mengikuti penerapan daftar tertaut ganda

Mengikuti konsep larik yang dapat diubah ukurannya secara dinamis

Proses

Kelas LinkedList bisa berupa daftar dan antrian karena mengimplementasikan antarmuka List dan Deque

bagaimana menggunakan tablo umum

Kelas ArrayList bisa menjadi daftar karena hanya mengimplementasikan Daftar

Penyimpanan

Konsumsi memori di LinkedList tinggi

Lebih sedikit dibandingkan dengan LinkedList

Itu saja semuanya! Ini membawa kita ke bagian akhir artikel ini tentang LinkedList vs ArrayList di Java. Saya harap kalian jelas dengan apa yang diajarkan di artikel ini.

Jika Anda menemukan artikel ini di 'LinkedList vs ArrayList in Java', lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kami di sini untuk membantu Anda dengan setiap langkah dalam perjalanan Anda, dan kami menghadirkan kurikulum yang dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java.