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.
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.