LinkedList vs ArrayList în Java: Cunoașteți diferențele majore



Acest articol LinkedList vs ArrayList vă va oferi o comparație adecvată între listele care implementează interfața listei

Listă în Java este o subinterfață a care oferă soluții optime cu concepte precum acces pozițional, iterație și așa mai departe. În acest articol, voi discuta despre diferențele majore dintre interfața listei LinkedList vs ArrayList în Java.

Mai jos sunt subiectele tratate în acest articol:





Sa incepem!

Ce este LinkedList?

După matrici , a doua structură de date cea mai populară este cu siguranță un . O listă legată este o structură de date liniară care este constituită de unlanț de noduri în care fiecare nod conține o valoare și aindicatorulla următorul nod din lanț.De asemenea, tultima verigă dintr-o listă legată indică nul, indicând sfârșitul lanțului.Un element dintr-o listă legată se numește a nodul .Primul nod din listă se numește cap .Ultimul nod se numește coadă .



Permiteți-mi să vă dau un exemplu simplu în acest sens: imaginați-vă un lanț de agrafe care sunt legate între ele. Puteți adăuga cu ușurință o altă agrafă în partea de sus sau de jos. De asemenea, este ușor să introduceți unul în mijloc. Tot ce trebuie să faceți este să spargeți lanțul la mijloc, să adăugați o agrafă nouă, apoi să reconectați cealaltă jumătate. O listă legată este similară cu aceasta.

Exemplu:

cod binar spre zecimal java
pachet 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) este folosit pentru adăugarea * elementelor la lista legată * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( „Conținut listă legată:” + l_list) / * Adăugați articole la poziția specificată * / l_list.add (2, „JavaScript”) l_list.add (3, „Kotlin”) System.out.println („l_list Conținut după editare: '+ l_list) / * Adăugați primul și ultimul element * / l_list.addFirst (' Primul curs ') l_list.addLast (' Ultimul curs ') System.out.println (' l_list Conținut după adăugare: '+ l_list) / * Obțineți și setați elementele din listă * / Obiect firstvar = l_list.get (0) System.out.println ('Primul element:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content după actualizarea primului articol: '+ l_list) / * Eliminați dintr-o poziție * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList după ștergerea articolului în poziția 2 și 3' + l_list) / * Eliminați primul și ultimul element * / l_list.removeFirst () l_list.removeLast () System.out.println ('Conținutul final după eliminarea primului și ultimului element : '+ l_list) / * Iterarea listei legate * / ListIteratoritrator = l_list.listIterator () System.out.println (' Lista afișată folosind iterator: ') în timp ce (itrator.hasNext ()) {System.out.println (itrator .Următorul()) } } }

Ieșire:



Conținut listat legat = {Java, Python, Scala, Swift} Conținut după editare = {Java, Python, JavaScript, Kotlin, Scala, Swift} Conținut după adăugare = {Primul curs, Java, Python, JavaScript, Kotlin, Scala, Swift, Ultimul curs} Primul element = {Primul curs} Conținut după actualizarea primului element = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Ultimul curs} Conținut după ștergerea articolului în poziția 2 și 3 = {Java9, Python, Kotlin, Scala, Swift, ultimul curs} Conținut final după eliminarea primului și ultimului element = {Python, Kotlin, Scala, Swift} Listă afișată folosind iterator = Python Kotlin Scala Swift

Acum, să trecem la următorul subiect.

Ce este un ArrayList?

este implementarea List Interface, unde elementele pot fi adăugate dinamic sau eliminate din lista corespunzătoare. Aici, dimensiunea listei este mărită dinamic dacă elementele sunt adăugate mai mult decât dimensiunea inițială sau reală. Deși poate fi mai lent decât matricele standard, poate fi util în programele în care este necesară o mare manipulare în matrice.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList este utilizat în aceste scopuri:

  • ArrayList în Java este obișnuit magazin o colecție dinamică de elemente.
  • Este inițializat de o dimensiune. Cu toate acestea, dimensiunea poate crește dacă colecția crește și se micșorează dacă obiectele sunt scoase din .
  • De asemenea, ArrayList vă permite să accesați aleatoriu lista.

Să mergem mai departe și să arătăm asemănările dintre LinkedList și ArrayList în Java.

Asemănări între LinkedList și ArrayList

Acestea sunt asemănările notabile dintre LinkedList și ArrayList în Java.

  • ArrayList și LinkedList sunt implementările programului Lista interfeței .
  • Atât ArrayList, cât și LinkedList mențin ordinea de inserare a elementelor. Aceasta înseamnă că, în timp ce afișează elementele Listei, setul de rezultate ar avea aceeași ordine în care elementele au fost inserate în Listă.
  • Aceste clase ArrayList și LinkedList nu sunt sincronizate și pot fi sincronizate în mod explicit folosind CollectionsSynchronizedList metodă.
  • Iteratorul și ListIteratorul returnate de aceste clase sunt foarte rapide. Aceasta înseamnă că, dacă lista este modificată structural la un moment dat după crearea iteratorului, cu excepțiametodele de eliminare sau adăugare proprii ale iteratorului, iteratorul va arunca un ConcurrentModificationException .

Diferențe între LinkedList și ArrayList

În primul rând, să aruncăm o privire asupra parametrilor pentru a compara LinkedList vs ArrayList în Java.

Parametrii pentru a compara LinkedList și ArrayList în Java:

  • Operațiune
  • Implementare
  • Proces
  • Memorie
  1. Operațiuni

Operațiile de inserare, adăugare și eliminare a unui articol sunt mai rapide într-un LinkedList pentru că nu este nevoie să redimensionăm așa cum facem noi ArrayList.

2. Implementare

cum se instalează hadoop pe Linux

ArrayList se bazează pe conceptul unui tablou redimensionabil dinamic, în timp ce LinkedList se bazează pe implementarea listei dublu legată

3. Proces

LA LinkedList class poate fi folosit ca listă și coadă, deoarece implementează interfețe List și Deque, în timp ce ArrayList poate implementa doar liste.

Patru. Memorie

LA LinkedList consumă mai multă memorie decât un ArrayList deoarece fiecare nod dintr-un LinkedList stochează două referințe, întrucât ArrayList conține doar date și indexul acestora

LinkedList vs ArrayList în Java

ParametriiLinkedListArrayList
Operațiuni

Operațiunile de inserare, adăugare și eliminare sunt destul de rapide

Comparativ operațiunilesunt lente aici

Implementare

Urmărește implementarea listei legată dublu

cum se creează o gamă de obiecte în java

Urmărește conceptul de matrice redimensionabilă dinamic

Proces

O clasă LinkedList poate fi o listă și o coadă, deoarece implementează interfețe List și Deque

O clasă ArrayList poate fi o listă, deoarece implementează numai liste

Memorie

Consumul de memorie în LinkedList este ridicat

Mai puțin comparativ cu LinkedList

Asta-i tot oameni buni! Acest lucru ne aduce la sfârșitul acestui articol despre LinkedList vs ArrayList în Java. Sper că voi sunteti clari cu ceea ce este predat în acest articol.

Dacă ați găsit acest articol despre „LinkedList vs ArrayList în Java”, consultați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Suntem aici pentru a vă ajuta cu fiecare pas din călătoria dvs. și venim cu un curriculum care este conceput pentru studenți și profesioniști care doresc să fie un dezvoltator Java.