LinkedList vs ArrayList di Java: Ketahui perbezaan utama



Artikel LinkedList vs ArrayList ini akan memberi anda perbandingan yang tepat antara senarai yang melaksanakan antara muka senarai

Senaraikan di Java adalah sub-antara muka dari yang memberikan penyelesaian yang optimum dengan konsep seperti akses kedudukan, lelaran dan sebagainya. Dalam artikel ini, saya akan membincangkan perbezaan utama antara antara muka senarai LinkedList vs ArrayList di Java.

Berikut adalah topik yang dibahas dalam artikel ini:





Mari kita mulakan!

Apa itu LinkedList?

Selepas tatasusunan , struktur data kedua paling popular pastinya a . Senarai terpaut adalah struktur data linier yang dibentuk oleh arantai nod di mana setiap nod mengandungi nilai dan apenunjukke nod seterusnya dalam rantai.Juga, tdia terakhir pautan dalam senarai terpaut menunjuk ke nol, menunjukkan akhir rantai.Elemen dalam senarai terpaut disebut a simpul .Node pertama dalam senarai dipanggil kepala .Node terakhir dipanggil ekor .



Izinkan saya memberi anda contoh ringkas: Bayangkan rangkaian klip kertas yang dihubungkan bersama. Anda boleh menambahkan klip kertas lain ke bahagian atas atau bawah dengan mudah. Mudah juga memasukkannya di tengah. Yang harus anda lakukan hanyalah memutuskan rantai di tengahnya, menambah klip kertas baru, kemudian sambungkan semula separuh yang lain. Senarai terpaut serupa dengan ini.

salinan cetek vs salinan dalam java

Contoh:

pakej MyPackage import java.util.LinkedList import java.util.ListIterator kelas awam senarai pautan {public static void main (String args []) {/ * Declaration List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) adalah digunakan untuk menambahkan * Item ke senarai terpaut * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Content List Linked:' + l_list) / * Tambahkan Item pada kedudukan yang ditentukan * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Content selepas mengedit: '+ l_list) / * Tambah Item Pertama dan Terakhir * / l_list.addFirst (' Kursus Pertama ') l_list.addLast (' Kursus Terakhir ') System.out.println (' Kandungan l_list selepas penambahan: '+ l_list) / * Dapatkan dan tetapkan Item dalam senarai * / Objek firstvar = l_list.get (0) System.out.println ('Item Pertama:' + firstvar) l_list.set (0, 'Java9') System.out.println ('L_list Content setelah mengemas kini Item pertama: '+ l_list) / * Keluarkan dari kedudukan * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList setelah penghapusan Item di kedudukan ke-2 dan ke-3' + l_list) / * Buang Item pertama dan terakhir * / l_list.removeFirst () l_list.removeLast () System.out.println ('Kandungan Akhir setelah mengeluarkan Item pertama dan terakhir : '+ l_list) / * Mengulihkan senarai yang dipautkan * / ListIteratoritrator = l_list.listIterator () System.out.println (' List ditampilkan menggunakan iterator: ') sementara (itrator.hasNext ()) {System.out.println (itrator .next ())}}}

Pengeluaran:



Kandungan Senarai Terpaut = {Java, Python, Scala, Swift} Kandungan setelah diedit = {Java, Python, JavaScript, Kotlin, Scala, Swift} Kandungan setelah penambahan = {Kursus Pertama, Java, Python, JavaScript, Kotlin, Scala, Swift, Kursus Terakhir} Item Pertama = {Kursus Pertama} Kandungan setelah mengemas kini item pertama = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} Kandungan setelah penghapusan item di kedudukan ke-2 dan ke-3 = {Java9, Python, Kotlin, Scala, Swift, Last Course} Kandungan Akhir setelah mengeluarkan Item pertama dan terakhir = {Python, Kotlin, Scala, Swift} Senarai yang dipaparkan menggunakan iterator = Python Kotlin Scala Swift

Sekarang, mari kita pergi ke topik seterusnya.

Apa itu ArrayList?

adalah pelaksanaan List Interface di mana unsur-unsur dapat ditambahkan atau dikeluarkan secara dinamik dari senarai yang sesuai. Di sini, ukuran senarai dinaikkan secara dinamis jika elemen ditambahkan lebih banyak daripada ukuran awal atau sebenarnya. Walaupun mungkin lebih lambat daripada tatasusunan standard, ini dapat membantu dalam program yang memerlukan banyak manipulasi dalam array.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList digunakan untuk tujuan ini:

  • ArrayList di Java digunakan untuk kedai koleksi elemen bersaiz dinamik.
  • Ia dimulakan dengan ukuran. Walau bagaimanapun, saiznya boleh meningkat jika koleksi bertambah dan mengecil jika objek dikeluarkan dari .
  • ArrayList juga membolehkan anda mengakses senarai secara rawak.

Mari kita terus maju dan menunjukkan persamaan antara LinkedList dan ArrayList di Java.

Persamaan antara LinkedList dan ArrayList

Ini adalah persamaan ketara antara LinkedList dan ArrayList di Java.

  • ArrayList dan LinkedList adalah pelaksanaan dari Antara muka senarai .
  • Kedua ArrayList dan LinkedList mengekalkan susunan penyisipan elemen. Ini bermaksud, ketika menampilkan elemen Daftar, set hasilnya akan memiliki urutan yang sama di mana elemen dimasukkan ke dalam Daftar.
  • KelasArrayList dan LinkedList ini tidak diselaraskan dan boleh diselaraskan secara eksplisit dengan menggunakan KoleksiSinkronizedList kaedah.
  • Iterator dan ListIterator yang dikembalikan oleh kelas-kelas ini cepat gagal. Ini bermaksud, jika senarai diubah secara struktural pada waktu tertentu setelah iterator dibuat, kecualikaedah menghapus atau menambah iterator sendiri, iterator akan membuang a Pengecualian bersamaan .

Perbezaan 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
  • Pelaksanaan
  • Proses
  • Ingatan
  1. Operasi

Operasi penyisipan, penambahan dan penyingkiran item lebih cepat dalam Senarai Terpaut kerana kita tidak perlu mengubah ukuran seperti yang kita lakukan Senarai Array.

2. Pelaksanaan

Senarai Array didasarkan pada konsep susun atur yang boleh disusun semula secara dinamik, sementara Senarai Terpaut didasarkan pada pelaksanaan senarai dua kali ganda

3. Proses

KE Senarai Terpaut kelas boleh digunakan sebagai senarai dan barisan kerana menerapkan antara muka List dan Deque sedangkan ArrayList hanya dapat melaksanakan Daftar.

Empat. Ingatan

KE Senarai Terpaut menggunakan lebih banyak memori daripada Senarai Array kerana setiap nod dalam a Senarai Terpaut menyimpan dua rujukan, sedangkan Senarai Array hanya menyimpan data dan indeksnya

LinkedList vs ArrayList di Java

ParameterSenarai TerpautSenarai Array
Operasi

Operasi penyisipan, penambahan, dan penyingkiran agak cepat

Secara perbandingan operasilambat di sini

Pelaksanaan

Mengikuti pelaksanaan senarai Berganda-ganda

Mengikuti konsep susunan saiz semula dinamik

Proses

Kelas LinkedList boleh menjadi senarai dan barisan kerana melaksanakan antaramuka List dan Deque

urutkan nombor c ++

Kelas ArrayList boleh menjadi senarai kerana hanya menerapkan Daftar

Ingatan

Penggunaan memori dalam LinkedList adalah tinggi

Kurang dibandingkan dengan LinkedList

Itu sahaja kalian! Ini membawa kita ke akhir artikel ini mengenai LinkedList vs ArrayList di Java. Saya harap kalian jelas dengan apa yang diajar dalam artikel ini.

Sekiranya anda menjumpai artikel ini di 'LinkedList vs ArrayList in Java', lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar yang berpuas hati tersebar di seluruh dunia. Kami di sini untuk membantu anda dalam setiap langkah dalam perjalanan anda, dan kami menyediakan kurikulum yang dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java.