logo

Forskellen mellem List og ArrayList

Java Collection giver en arkitektur til at håndtere gruppen af ​​objekter. Samlingen betyder en enkelt enhed af genstande. Det giver os mulighed for at gemme og manipulere gruppen af ​​objekter som en enkelt enhed.

Vi kan nemt udføre mange operationer såsom søgning, sortering, indsættelse, sletning og manipulation på en gruppe af objekter ved hjælp af samlingsrammen.

Java Collection framework giver flere grænseflader og klasser. Grænsefladerne indeholder Sæt, Liste , Kø, Deque , og klasser indeholder ArrayList , Vektor , LinkedList , HashSet , Træsæt , LinkedHashSet , og Prioritetskø .

fjern første tegn i excel

I dette afsnit vil vi skelne mellem to elementer af Indsamlingsramme , som er List og ArrayList. Listen er en grænseflade, og ArrayList er en klasse.

Forskellen mellem List og ArrayList

Listegrænseflade

Listen er en underordnet grænseflade af samlingsrammen, der giver os mulighed for at opretholde den ordnede samling af objekterne. Vi kan gemme de duplikerede værdier og nul-elementer ved hjælp af List. Det giver en indeksbaseret metode til at udføre indsættelse, sletning, søgning og opdatering af objekterne.

Listegrænsefladen finder sted i pakken java.util. Det implementerer ArrayList, LinkedList, Stack og Vector klasser. Det er også en base af ListIterator-klasser, hvormed vi kan iterere listen i frem- og tilbageretninger.

Listegrænseflade giver positionsadgang og indsættelse af elementer og bevarer indsættelsesrækkefølgen. Forekomsten af ​​listen kan oprettes ved hjælp af implementeringsklasserne.

Implementering af liste:

Vi kan implementere List-grænsefladen ved at bruge ArrayList, LinkedList, Vector og Stack klasser .

For at instansiere List-grænsefladen kan vi bruge følgende syntakser:

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

Overvej nedenstående eksempel på List:

 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); } } 

Produktion:

generel beskyttelsesfejl
 [Hello, Java, Tpoint] 

ArrayList klasse

ArrayList-klassen bruger et dynamisk array til lagring af elementerne. ArrayList-klassen fungerer som et array, men der er ingen størrelsesbegrænsning i den. Vi kan tilføje eller fjerne elementerne, når vi vil. Vi kan gemme duplikatelementet ved hjælp af ArrayList-klassen. Den styrer rækkefølgen af ​​indsættelse internt.

ArrayList-klassen er meget mere fleksibel end den traditionelle array. Det implementerer List-grænsefladen til at bruge alle metoderne til List Interface. Det foregår i Java .util-pakke.

ArrayList-klassen arver AbstractList-klassen og implementerer List Interface. Elementerne i den kan tilgås tilfældigt. Det kan ikke bruges til primitive typer såsom int, char osv.; til disse datatyper har vi brug for en indpakningsklasse.

Implementering af ArrayList:

En ArrayList-klasse arver alle metoderne i AbstractList-klassen og implementerer List-grænsefladen.

ArrayList-klassen kan erklæres som følger:

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

ArrayList kan defineres som følger:

 ArrayList myList = new ArrayList(); 

Overvej nedenstående eksempel 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); } } 

Produktion:

 [Hello, Java, Tpoint] 

Nogle nøgleforskelle mellem List Interface og ArrayList Class

Nogle store forskelle mellem List og ArrayList er som følger:

  • En af de største forskelle er det List er en grænseflade og ArrayList er en klasse af Java Collection framework.
  • Det List udvider indsamlingsrammen , forholdsvis ArrayList udvider AbstractList-klassen og implementerer List-grænsefladen .
  • Navnerummet for Listen og ArrayList er henholdsvis System.Collection.Generic og System Collection.
  • Liste gemmer elementer i en rækkefølge og identificeres ved det individuelle indeksnummer. Til sammenligning gemmer ArrayList elementerne i et dynamisk array; det kan vokse, når det er nødvendigt.

Når vi definerer listen som følger:

 List myList = new ArrayList(); 

Det betyder, at vi kun kan kalde metoderne og referencemedlemmerne fra List-grænsefladen.

Hvis vi definerer ArrayList som følger:

sql server pivot
 ArrayList myList = new ArrayList(); 

Det betyder, at vi kan påberåbe os tilgængelige metoder i ArrayList og bruge dets medlemmer ud over listen.

Overvej nedenstående tabel for nogle hovedsammenligninger mellem List og ArrayList:

Sammenligningsgrundlag Liste ArrayList
Generel Det er en grænseflade. Det er klasse.
Arbejde Den opretter en liste over objekter, som kan tilgås af det enkelte indeksnummer. Det skaber et dynamisk array, der kan udvides, når det er nødvendigt.
Implementering Liste liste1= ny ArrayList(); ArrayList myList = new ArrayList();
Udvid/implementer Det udvider indsamlingsrammen. Det udvider AbstractList-klassen og implementerer List-grænsefladen.
Basispakke java.util java.util
Navneområde System.Indsamling.Generisk System.Indsamling
Ydeevne Det giver hurtigere manipulation af objekter. Det giver langsom manipulation på objekter sammenlignet med List.
Instantiation Det kan ikke instansieres. Det kan være øjeblikkeligt

Konklusion

Listen er en grænseflade, og ArrayList er en klasse af Java Collection framework. Listen opretter et statisk array, og ArrayList opretter et dynamisk array til lagring af objekterne. Så listen kan ikke udvides, når den først er oprettet, men ved at bruge ArrayList kan vi udvide arrayet, når det er nødvendigt.

Det er bedre at bruge List Interface, hvis du vil drage fordel af polymorfien. Hvis vi i fremtiden skal implementere grænsefladen, behøver vi ikke at ændre programmet.