logo

Forskjellen mellom ArrayList og LinkedList

ArrayList og LinkedList implementerer begge List-grensesnittet og opprettholder innsettingsrekkefølge. Begge er ikke-synkroniserte klasser.

autocad stretch-kommando

Imidlertid er det mange forskjeller mellom ArrayList- og LinkedList-klassene som er gitt nedenfor.

ArrayListLinkedList
1) ArrayList bruker internt en dynamisk array å lagre elementene.LinkedList bruker internt en dobbeltlenket liste å lagre elementene.
2) Manipulasjon med ArrayList er langsom fordi den internt bruker en matrise. Hvis et element fjernes fra matrisen, flyttes alle de andre elementene i minnet.Manipulasjon med LinkedList er raskere enn ArrayList fordi den bruker en dobbelt koblet liste, så ingen bitskifting er nødvendig i minnet.
3) En ArrayList-klasse kan fungere som en liste bare fordi den implementerer bare List.LinkedList-klassen kan fungere som en liste og kø både fordi den implementerer List- og Deque-grensesnitt.
4) ArrayList er bedre for lagring og tilgang data.LinkedList er bedre å manipulere data.
5) Minneplasseringen for elementene i en ArrayList er sammenhengende.Plasseringen for elementene i en koblet liste er ikke smittsom.
6) Vanligvis, når en ArrayList initialiseres, tildeles ArrayList en standardkapasitet på 10.Det er ingen tilfeller av standardkapasitet i en LinkedList. I LinkedList opprettes en tom liste når en LinkedList initialiseres.
7) For å være presis er en ArrayList en matrise som kan endres størrelse.LinkedList implementerer den dobbeltkoblede listen til listegrensesnittet.

Eksempel på ArrayList og LinkedList i Java

La oss se et enkelt eksempel der vi bruker ArrayList og LinkedList begge.

Filnavn: TestArrayLinked.java

 import java.util.*; class TestArrayLinked{ public static void main(String args[]){ List al=new ArrayList();//creating arraylist al.add('Ravi');//adding object in arraylist al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); List al2=new LinkedList();//creating linkedlist al2.add('James');//adding object in linkedlist al2.add('Serena'); al2.add('Swati'); al2.add('Junaid'); System.out.println('arraylist: '+al); System.out.println('linkedlist: '+al2); } } 
Test det nå

Produksjon:

arraylist: [Ravi,Vijay,Ravi,Ajay] linkedlist: [James,Serena,Swati,Junaid] 

Poeng å huske

Følgende er noen viktige punkter å huske angående en ArrayList og LinkedList.

  • Når frekvensen for tillegg eller fjerning er høyere enn lesescenarioene, gå for LinkedList. På den annen side, når frekvensen av lesescenarioene er mer enn tilleggs- eller fjerningshastigheten, har ArrayList forrang over LinkedList.
  • Siden elementene i en ArrayList er lagret mer kompakt sammenlignet med en LinkedList; derfor er ArrayList mer cache-vennlig sammenlignet med LinkedList. Dermed er sjansene for cache-glipp mindre i en ArrayList sammenlignet med en LinkedList. Generelt anses det at en LinkedList har dårlig cache-lokalitet.
  • Minneoverhead i LinkedList er mer sammenlignet med ArrayList. Det er fordi vi i en LinkedList har to ekstra lenker (neste og forrige) da det kreves for å lagre adressen til forrige og neste noder, og disse koblingene bruker ekstra plass. Slike lenker finnes ikke i en ArrayList.