logo

Forskjellen mellom List og ArrayList

Java-samlingen gir en arkitektur for å håndtere gruppen av objekter. Samlingen betyr en enkelt enhet av gjenstander. Den lar oss lagre og manipulere gruppen av objekter som en enkelt enhet.

Vi kan enkelt utføre mange operasjoner som søk, sortering, innsetting, sletting og manipulering på en gruppe objekter ved hjelp av samlingsrammeverket.

Java Collection-rammeverket gir flere grensesnitt og klasser. Grensesnittene inneholder Sett, Liste , Kø, Deque , og klasser inneholder ArrayList , Vektor , LinkedList , HashSet , Tresett , LinkedHashSet , og Prioritetskø .

hashing i datastruktur

I denne delen vil vi skille mellom to elementer av Innsamlingsramme , som er List og ArrayList. Listen er et grensesnitt, og ArrayList er en klasse.

Forskjellen mellom List og ArrayList

Listegrensesnitt

Listen er et underordnet grensesnitt til samlingsrammeverket som lar oss opprettholde den ordnede samlingen av objektene. Vi kan lagre dupliserte verdier og null-elementer ved å bruke List. Det gir en indeksbasert metode for å utføre innsetting, sletting, søk, oppdateringsoperasjoner på objektene.

List-grensesnittet finner sted i java.util-pakken. Den implementerer ArrayList, LinkedList, Stack og Vector klasser. Det er også en base av ListIterator-klasser som vi kan iterere listen i forover- og bakoverretninger.

Listegrensesnitt gir posisjonstilgang og innsetting av elementer og bevarer innsettingsrekkefølgen. Forekomsten av listen kan opprettes ved hjelp av implementeringsklassene.

Implementering av liste:

Vi kan implementere List-grensesnittet ved å bruke ArrayList, LinkedList, Vector og Stableklasser .

For å instansiere listegrensesnittet kan vi bruke følgende syntakser:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Tenk på eksempelet nedenfor på Liste:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Produksjon:

generell beskyttelsesfeil
 [Hello, Java, Tpoint] 

ArrayList klasse

ArrayList-klassen bruker en dynamisk matrise for å lagre elementene. ArrayList-klassen fungerer som en matrise, men det er ingen størrelsesgrense i den. Vi kan legge til eller fjerne elementene når vi vil. Vi kan lagre det dupliserte elementet ved å bruke ArrayList-klassen. Den styrer innsettingsrekkefølgen internt.

ArrayList-klassen er mye mer fleksibel enn den tradisjonelle matrisen. Den implementerer List-grensesnittet for å bruke alle metodene til List Interface. Det foregår i Java .util-pakken.

ArrayList-klassen arver AbstractList-klassen og implementerer List Interface. Elementene i den kan nås tilfeldig. Den kan ikke brukes for primitive typer som int, char osv.; for disse datatypene trenger vi en innpakningsklasse.

Implementering av ArrayList:

En ArrayList-klasse arver alle metodene til AbstractList-klassen og implementerer List-grensesnittet.

ArrayList-klassen kan deklareres som følger:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList kan defineres som følger:

 ArrayList myList = new ArrayList(); 

Tenk på eksemplet nedenfor på ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Produksjon:

 [Hello, Java, Tpoint] 

Noen viktige forskjeller mellom List Interface og ArrayList Class

Noen store forskjeller mellom List og ArrayList er som følger:

  • En av de store forskjellene er det List er et grensesnitt og ArrayList er en klasse av Java Collection-rammeverket.
  • De List utvider innsamlingsrammen , forholdsvis ArrayList utvider AbstractList-klassen og implementerer List-grensesnittet .
  • Navneområdet for Listen og ArrayList er henholdsvis System.Collection.Generic og System Collection.
  • List lagrer elementer i en sekvens og identifiseres med det individuelle indeksnummeret. Til sammenligning lagrer ArrayList elementene i en dynamisk matrise; det kan vokse når det er nødvendig.

Når vi definerer listen som følger:

 List myList = new ArrayList(); 

Det betyr at vi bare kan kalle metodene og referansemedlemmer fra List-grensesnittet.

Hvis vi definerer ArrayList som følger:

sql server pivot
 ArrayList myList = new ArrayList(); 

Det betyr at vi kan påkalle tilgjengelige metoder i ArrayList og bruke medlemmene i tillegg til listen.

Vurder tabellen nedenfor for noen hodesammenligninger mellom List og ArrayList:

Sammenligningsgrunnlag Liste ArrayList
Generell Det er et grensesnitt. Det er klasse.
Arbeid Den lager en liste over objekter som kan nås av det enkelte indeksnummeret. Det skaper en dynamisk matrise som kan utvides ved behov.
Gjennomføring Liste liste1= ny ArrayList(); ArrayList myList = new ArrayList();
Utvide/implementere Det utvider innsamlingsrammen. Den utvider AbstractList-klassen og implementerer List-grensesnittet.
Grunnpakke java.util java.util
Navneområde System.samling.Generisk System.Samling
Opptreden Det gir raskere manipulering av objekter. Det gir langsom manipulasjon på objekter sammenlignet med List.
Instantiering Det kan ikke instansieres. Det kan være øyeblikkelig

Konklusjon

Listen er et grensesnitt, og ArrayList er en klasse av Java Collection-rammeverket. Listen lager en statisk matrise, og ArrayList oppretter en dynamisk matrise for lagring av objektene. Så listen kan ikke utvides når den først er opprettet, men ved å bruke ArrayList kan vi utvide matrisen når det er nødvendig.

Det er bedre å bruke listegrensesnittet hvis du vil dra nytte av polymorfismen. I fremtiden, hvis vi er pålagt å implementere grensesnittet, trenger vi ikke å endre programmet.