LinkedList versus ArrayList in Java: ken de belangrijkste verschillen



Dit LinkedList vs ArrayList-artikel geeft u een goede vergelijking tussen de lijsten die de lijstinterface implementeren

Lijst in Java is een subinterface van de dat geeft optimale oplossingen met concepten als positionele toegang, iteratie enzovoort. In dit artikel bespreek ik de belangrijkste verschillen tussen de lijstinterface LinkedList versus ArrayList in Java.

Hieronder staan ​​de onderwerpen die in dit artikel worden behandeld:





Laten we beginnen!

Wat is LinkedList?

Na arrays , de op een na populairste datastructuur is zeker een . Een gekoppelde lijst is een lineaire gegevensstructuur die wordt gevormd door eenketen van knooppunten waarin elk knooppunt een waarde bevat en eenwijzernaar het volgende knooppunt in de keten.Ook tDe laatste schakel in een gekoppelde lijst verwijst naar null, wat het einde van de ketting aangeeft.Een element in een gekoppelde lijst wordt een genoemd knooppunt .Het eerste knooppunt in de lijst heet de hoofd .Het laatste knooppunt heet de staart .



Laat me je hier een eenvoudig voorbeeld van geven: stel je een ketting van paperclips voor die met elkaar verbonden zijn. U kunt eenvoudig een andere paperclip aan de boven- of onderkant toevoegen. Het is ook gemakkelijk om er een in het midden te plaatsen. Het enige wat u hoeft te doen is de ketting in het midden te breken, een nieuwe paperclip toe te voegen en de andere helft weer vast te maken. Een gekoppelde lijst is vergelijkbaar met deze.

Voorbeeld:

pakket 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) is gebruikt voor het toevoegen van * de items aan de gekoppelde lijst * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Linked List Content:' + l_list) / * Items toevoegen op gespecificeerde positie * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Content na bewerking: '+ l_list) / * Eerste en laatste item toevoegen * / l_list.addFirst (' Eerste cursus ') l_list.addLast (' Laatste cursus ') System.out.println (' l_list Inhoud na toevoeging: '+ l_list) / * Get en stel items in de lijst * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content na het updaten van het eerste Item: '+ l_list) / * Verwijderen uit een positie * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList na verwijdering van item op 2e en 3e positie' + l_list) / * Verwijder eerste en laatste item * / l_list.removeFirst () l_list.removeLast () System.out.println ('Laatste inhoud na verwijdering van eerste en laatste item : '+ l_list) / * De gekoppelde lijst herhalen * / ListIteratoritrator = l_list.listIterator () System.out.println (' Lijst weergegeven met iterator: ') terwijl (itrator.hasNext ()) {System.out.println (itrator .De volgende()) } } }

Uitgang:



Gelinkte lijstinhoud = {Java, Python, Scala, Swift} Inhoud na bewerking = {Java, Python, JavaScript, Kotlin, Scala, Swift} Inhoud na toevoeging = {Eerste cursus, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} First Item = {First Course} Content na updaten eerste item = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} Content na verwijdering van item op 2e en 3e positie = {Java9, Python, Kotlin, Scala, Swift, Last Course} Laatste inhoud na verwijderen van eerste en laatste item = {Python, Kotlin, Scala, Swift} Lijst weergegeven met iterator = Python Kotlin Scala Swift

Laten we nu verder gaan met het volgende onderwerp.

Wat is een ArrayList?

is de implementatie van List Interface waar de elementen dynamisch kunnen worden toegevoegd aan of verwijderd uit de bijbehorende lijst. Hier wordt de grootte van de lijst dynamisch vergroot als de elementen meer worden toegevoegd dan de oorspronkelijke of werkelijke grootte. Hoewel het langzamer kan zijn dan standaard arrays, kan het nuttig zijn in programma's waar veel manipulatie in de array vereist is.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList wordt voor deze doeleinden gebruikt:

hoe je een kunstmatige intelligentie-ingenieur wordt
  • ArrayList in Java is gewend op te slaan een dynamische verzameling elementen.
  • Het wordt geïnitialiseerd door een grootte. De omvang kan echter toenemen als de verzameling groter en kleiner wordt als objecten uit het .
  • Met ArrayList hebt u ook willekeurig toegang tot de lijst.

Laten we verder gaan en wijzen op de overeenkomsten tussen LinkedList en ArrayList in Java.

Overeenkomsten tussen LinkedList en ArrayList

Dit zijn de opvallende overeenkomsten tussen LinkedList en ArrayList in Java.

  • ArrayList en LinkedList zijn de implementaties van de Lijstinterface .
  • Zowel ArrayList als LinkedList behouden de invoegvolgorde van de elementen. Dit betekent dat, terwijl de List-elementen worden weergegeven, de resultatenset dezelfde volgorde heeft waarin de elementen in de List zijn ingevoegd.
  • Deze klassenArrayList en LinkedList zijn niet-gesynchroniseerd en kunnen expliciet worden gesynchroniseerd met behulp van CollectionsSynchronizedList methode.
  • De iterator en ListIterator die door deze klassen worden geretourneerd, werken niet goed. Dit betekent dat, als de lijst op een bepaald moment structureel wordt gewijzigd nadat de iterator is gemaakt, behalve deiterator's eigen verwijder- of toevoegmethoden, zal de iterator een ConcurrentModificationException .

Verschillen tussen LinkedList en ArrayList

Laten we eerst eens kijken naar de parameters om LinkedList versus ArrayList in Java te vergelijken.

Parameters om LinkedList en ArrayList in Java te vergelijken:

  • Operatie
  • Implementatie
  • Werkwijze
  • Geheugen
  1. Operaties

Het invoegen, toevoegen en verwijderen van een item gaat sneller in een LinkedList omdat we het formaat niet hoeven te wijzigen zoals in ArrayList.

2. Implementatie

ArrayList is gebaseerd op de concept van een dynamisch aanpasbare array, while LinkedList is gebaseerd op implementatie van dubbel gelinkte lijsten

3. Werkwijze

NAAR LinkedList class kan worden gebruikt als een lijst en een wachtrij omdat het List- en Deque-interfaces implementeert, terwijl ArrayList alleen Lists kan implementeren.

Vier. Geheugen

NAAR LinkedList verbruikt meer geheugen dan een ArrayList omdat elk knooppunt in een LinkedList slaat twee referenties op, terwijl ArrayList bevat alleen gegevens en de bijbehorende index

LinkedList versus ArrayList in Java

ParametersLinkedListArrayList
Operaties

Invoegen, toevoegen en verwijderen zijn aanzienlijk sneller

Relatief de operatieszijn hier traag

Implementatie

Volgt dubbel gekoppelde lijst implementatie

Volgt het concept van dynamisch aanpasbare array

Werkwijze

Een LinkedList-klasse kan een lijst en een wachtrij zijn omdat deze List- en Deque-interfaces implementeert

Een klasse ArrayList kan een lijst zijn, omdat deze alleen Lists implementeert

Geheugen

Het geheugengebruik in LinkedList is hoog

Minder vergeleken met LinkedList

Dat is alles Mensen! Dit brengt ons bij het einde van dit artikel over de LinkedList vs ArrayList in Java. Ik hoop dat jullie duidelijk zijn met wat er in dit artikel wordt geleerd.

Als je dit artikel hebt gevonden op 'LinkedList vs ArrayList in Java', bekijk dan het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, en we bedenken een curriculum dat is ontworpen voor studenten en professionals die een Java-ontwikkelaar willen worden.