Forskjellen mellom ArrayList og LinkedList i Java

Forfatter: Laura McKinney
Opprettelsesdato: 3 April 2021
Oppdater Dato: 6 Kan 2024
Anonim
What is difference between normal java and core java
Video: What is difference between normal java and core java

Innhold


ArrayList og LinkedList er Samling klasser, og begge implementerer Liste grensesnitt. ArrayList-klassen oppretter listen som er internt lagret i en dynamisk matrise som vokser eller krymper i størrelse når elementene blir lagt til eller slettet fra det. LinkedList oppretter også listen som er internt lagret i en dobbelt koblet Liste. Begge klassene brukes til å lagre elementene i listen, men den største forskjellen mellom begge klassene ArrayList og LinkedList er at Arraylist gir tilfeldig tilgang til elementene i listen når den fungerer på en indeksbasert data struktur. På den annen side, Linked tillater ikke tilfeldig tilgang ettersom det ikke har indekser for å få tilgang til elementer direkte, det må krysse listen for å hente eller få tilgang til et element fra listen.


La oss diskutere noen flere forskjeller mellom ArrayList og LinkedList ved hjelp av sammenligningstabellen nedenfor.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningArraylistLinked
grunn~~POS=TRUNC ArrayList gir tilfeldig tilgang til elementene i listen.LinkedList tillater ikke tilfeldig tilgang til elementene i listen.
Data strukturDen interne strukturen som brukes til å lagre elementer er den dynamiske matrisen.Den interne strukturen som brukes til å lagre elementer er dobbelt koblingsliste.
StrekkerArrayList utvider AbstarctList-klassen.LinkedList utvider AbstractSequentialList.
redskaperAbstractList implementerer Listegrensesnitt.LinkedList implementerer List, Deque, Queue.
Adgang Tilgangen til elementer i listen er raskere i ArrayList.Tilgangen til elementer i listen er tregere i LinkedList.
manipulasjonManipulering til elementer i listen er tregere i ArrayList.Manipulering til elementer i listen er raskere i LinkedList.
OppførselArraylList oppfører seg som Liste når den implementerer liste.LinkedList oppfører seg som List en brønn som Kø, da den implementerer List og Kø begge.


Definisjon av ArrayList

De AbstractList klassen er definert av Samlingsrammeverk. Det strekker seg AbstarctList og redskaper Liste grensesnitt. ArrayList bruker dynamisk matrise dvs. rekke variabel lengde som en intern datastruktur for å lagre elementene i listen. Behovet av ArrayList oppstår da matrisen i java har fast lengde. Så den kan ikke vokse eller krympe i størrelse når elementene blir lagt til eller slettet fra matrisen. Så du må vite størrelsen på ønsket utvalg på forhånd. Men matrallisten implementert ved bruk av ArrayList-klassen kan vokse og krympe i størrelse når elementene legges til eller slettes fra matrisen.

Du får tilgang til matrallisten implementert ved bruk av ArrayList tilfeldig som ArrayList opererer på indeksbasis. Så å vite indeks kan du få direkte tilgang til listen. Det er tre konstruktører av ArrayList:

ArrayList () ArrayList (Samling <? Utvider E> c) ArrayList (int-kapasitet)

De først konstruktør implementerer en tom matriseliste. De sekund konstruktør implementerer en matriseliste initialisert ved hjelp av Samling c elementer. De tredje konstruktør implementerer matriser med kapasitet gitt i argumentet. Arbeid med ArrayList, noen ganger vil du kreve å konvertere Collection ArrayList til en matrise. Det kan gjøres ved å ringe toArray ().

Definisjon av LinkedList

Som ArrayList, Linked er også en Samling klassebruk dobbelt lenket liste som en intern datastruktur for å lagre elementene i listen. LinkedList-klassen strekker seg AbstractSequentialList og implementerer Liste, Deque og grensesnitt. Den koblede listen implementert med LinkedList kan ikke nås tilfeldig. Hvis du vil hente noe element fra listen, må du iterere listen for å søke i det elementet.

Det er to konstruktører i LinkedList-klassen.

LinkedList () LinkedList (Samling <? Utvider E> c)

De først konstruktør oppretter en tom lenket liste. De sekund konstruktør oppretter en koblet liste, initialisert med elementene i Samling c.

I LinkedList er manipulasjonen av listen enkel og rask. Dette skyldes at hvis du legger til eller sletter noen element i listen, er det ikke nødvendig å skifte elementene som i ArrayList. Men tilgangen er tregere da den ikke har indeks for å få direkte tilgang til elementene.

  1. Du kan få tilgang til listen implementert av ArrayList tilfeldig fordi ArrayList vedtar den indeksbaserte datastrukturen til matrisen. På den andre siden kan ikke listen implementert av LinkedList få tilgang til tilfeldig fordi du må krysse listen for å hente eller få tilgang til et bestemt element i listen.
  2. Den interne datastrukturen som brukes av ArrayList for å lagre elementene i listen er en dynamisk matrise som kan vokse eller krympe når elementene blir lagt til eller slettet fra listen. Imidlertid er den interne datastrukturen som er brukt av LinkedList for å lagre elementene i listen dobbelt lenket liste.
  3. ArrayList utvider AbstractList klasse som også er en samlingsklasse, mens LinkedList-klassen strekker seg AbstractSequentialList klasse som igjen er en samlingsklasse.
  4. ArrayList-klassen implementerer Liste grensesnitt mens LinkedList-klassen implementerer Liste, , og Deque grensesnitt.
  5. Å få tilgang til elementer fra listen implementert ved bruk av ArrayList er raskere ettersom den har en indeksbasert datastruktur. På den annen side er det ingen indeksbasert struktur i listen implementert avLinkledList. Derfor blir en iterator brukt over listen for å nå elementet som skal åpnes som gjør tilgang tregere i LinkedList.
  6. Manipulering er manipulering i listen implementert ved bruk av ArrayList fordi hver gang et element legges til eller slettes fra listen, blir elementene i listen forskjøvet for å imøtekomme endringen. På den annen side er manipulasjonen raskere i listen implementert av LinkedList, da den ikke krever skifting av elementer i listen ved tillegg eller sletting av elementene fra listen.
  7. ArrayList fungerer som en liste som det implementerer List-grensesnitt, mens LinkedList fungerer som liste og ettersom den implementerer List og Queue begge deler.

Konklusjon:

Når det er en hyppig tilføyelse eller sletting av elementene på listen, må LinkedList brukes fordi det gir bedre resultater under manipulering. Hvis du bruker hyppig søk på listen, er ArrayList det beste valget, ettersom den gir bedre resultater mens du får tilgang til elementer fra listen.