logo

Razlika med Listom in ArrayList

Zbirka Java ponuja arhitekturo za obravnavo skupine predmetov. Zbirka pomeni eno enoto predmetov. Omogoča nam shranjevanje in upravljanje skupine predmetov kot ene same enote.

Z uporabo zbirnega ogrodja lahko enostavno izvajamo številne operacije, kot so iskanje, razvrščanje, vstavljanje, brisanje in manipulacija na skupini predmetov.

Ogrodje zbirke Java ponuja več vmesnikov in razredov. Vmesniki vsebujejo Set, Seznam , Čakalna vrsta, Deque , in razredi vsebujejo ArrayList , Vektor , LinkedList , HashSet , TreeSet , LinkedHashSet , in PriorityQueue .

t ff

V tem razdelku bomo razlikovali dva elementa Ogrodje zbirke , ki je List in ArrayList. Seznam je vmesnik, ArrayList pa razred.

Razlika med Listom in ArrayList

Seznam vmesnika

Seznam je podrejeni vmesnik ogrodja zbirke, ki nam omogoča vzdrževanje urejene zbirke predmetov. S seznamom lahko shranimo podvojene vrednosti in ničelne elemente. Zagotavlja metodo, ki temelji na indeksu, za izvajanje operacij vstavljanja, brisanja, iskanja in posodabljanja objektov.

Vmesnik List poteka v paketu java.util. Izvaja razrede ArrayList, LinkedList, Stack in Vector. Je tudi osnova razredov ListIterator, s katerimi lahko ponavljamo seznam v smeri naprej in nazaj.

Vmesnik seznama omogoča pozicijski dostop in vstavljanje elementov ter ohranja vrstni red vstavljanja. Primerek seznama je mogoče ustvariti z izvajanjem razredov.

Izvedba seznama:

Vmesnik List lahko implementiramo z uporabo ArrayList, LinkedList, Vector in Razredi sklada .

Za instanciranje vmesnika List lahko uporabimo naslednje sintakse:

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

Oglejte si spodnji primer seznama:

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

Izhod:

nespremenljiv seznam
 [Hello, Java, Tpoint] 

Razred ArrayList

Razred ArrayList uporablja dinamično polje za shranjevanje elementov. Razred ArrayList deluje kot matrika, vendar v njem ni omejitve velikosti. Elemente lahko dodajamo ali odvzemamo kadarkoli želimo. Podvojeni element lahko shranimo z uporabo razreda ArrayList. Interno upravlja vrstni red vstavljanja.

Razred ArrayList je veliko bolj prilagodljiv kot tradicionalna matrika. Izvaja vmesnik List za uporabo vseh metod vmesnika List. Poteka v Java .util paket.

Razred ArrayList podeduje razred AbstractList in implementira vmesnik seznama. Do njegovih elementov je mogoče naključno dostopati. Ni ga mogoče uporabiti za primitivne tipe, kot so int, char itd.; za te tipe podatkov potrebujemo ovojni razred.

Implementacija ArrayList:

Razred ArrayList podeduje vse metode razreda AbstractList in implementira vmesnik List.

Razred ArrayList je mogoče deklarirati na naslednji način:

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

ArrayList je mogoče definirati na naslednji način:

 ArrayList myList = new ArrayList(); 

Razmislite o spodnjem primeru 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); } } 

Izhod:

 [Hello, Java, Tpoint] 

Nekaj ​​ključnih razlik med vmesnikom seznama in razredom ArrayList

Nekatere glavne razlike med Listom in ArrayList so naslednje:

  • Ena večjih razlik je ta List je vmesnik in ArrayList je razred ogrodja zbirke Java.
  • The Seznam razširja okvir zbirke , primerjalno ArrayList razširja razred AbstractList in implementira vmesnik List .
  • Imenski prostor za List in ArrayList je System.Collection.Generic oziroma System Collection.
  • Seznam shranjuje elemente v zaporedju in so identificirani s posamezno indeksno številko. Primerjalno, ArrayList shrani elemente v dinamični niz; po potrebi lahko raste.

Ko seznam definiramo na naslednji način:

 List myList = new ArrayList(); 

To pomeni, da lahko samo kličemo metode in referenčne člane iz vmesnika seznama.

Če ArrayList definiramo na naslednji način:

vnos niza v javo
 ArrayList myList = new ArrayList(); 

To pomeni, da lahko prikličemo razpoložljive metode v ArrayList in poleg seznama uporabimo njegove člane.

Oglejte si spodnjo tabelo za nekaj primerjav med seznamom in ArrayList:

Osnova za primerjavo Seznam ArrayList
Splošno Je vmesnik. To je razred.
delo Ustvari seznam objektov, do katerih je mogoče dostopati s posamezno indeksno številko. Ustvari dinamično polje, ki ga je mogoče po potrebi razširiti.
Izvedba Seznam seznam1= nov ArrayList(); ArrayList myList = nov ArrayList();
Razširi/Izvedi Razširja okvir zbiranja. Razširja razred AbstractList in implementira vmesnik List.
Osnovni paket java.util java.util
Imenski prostor System.Collection.Generic Sistem.Zbirka
Izvedba Omogoča hitrejšo manipulacijo predmetov. Zagotavlja počasno manipulacijo predmetov v primerjavi s seznamom.
Instanciacija Ni ga mogoče instancirati. Lahko je instantno

Zaključek

Seznam je vmesnik, ArrayList pa razred ogrodja zbirke Java. Seznam ustvari statično matriko, ArrayList pa dinamično matriko za shranjevanje predmetov. Seznama torej ni mogoče razširiti, ko je ustvarjen, vendar lahko z uporabo ArrayList razširimo matriko, ko je to potrebno.

Če želite izkoristiti polimorfizem, je bolje uporabiti vmesnik seznama. V prihodnosti, če bomo morali implementirati vmesnik, nam ne bo treba spreminjati programa.