Primerjalna tabela
Podlaga za primerjavo | Seznam | ArrayList |
---|---|---|
Osnovno | Seznam je vmesnik | ArrayList je standardni razred zbirke. |
Sintaksa | Seznam vmesnikov | razred ArrayList |
Razširi / izvede | Vmesnik seznama razširja okvir za zbiranje. | ArrayList razširja AbstractList in implementira seznamski vmesnik. |
Prostor | System.Collections.Generic. | Zbirke. |
Delo | Uporablja se za izdelavo seznama elementov (objektov), ki so povezani z njihovimi indeksnimi številkami. | ArrayList se uporablja za ustvarjanje dinamičnega niza, ki vsebuje objekte. |
Opredelitev seznama
Seznam je vmesnik, ki razširja okvir zbiranja . Vmesnik seznama opisuje zbirko elementov, ki so razvrščeni zaporedno. Vmesnik s seznamom se izvaja z naslednjimi razredi standardnih zbirk, kot so ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Vmesnik seznama vsebuje elemente, ki so povezani z njihovimi indeksnimi številkami. Elementu seznama lahko dostopate po položaju (indeksu) na seznamu. Seznam, ustvarjen s pomočjo vmesnika List, se začne z indeksom, ki temelji na nič.
Vmesnik List poleg metod, podedovanih z okvirom zbirke, definira tudi nekaj lastnih metod. Metode, ki jih doda vmesnik List, so, add (int, E) in addAll (int, Collection) . Te metode dodajo element na seznam po indeksu. Metode znotraj seznama lahko povzročijo izjemo, kot je UnsupportedOperationException, če metoda ne more spremeniti seznama. Če je en predmet na seznamu nezdružljiv z drugim predmetom na seznamu, potem je ClassCastException zaklenjen. Null elementi na seznamu niso dovoljeni, če poskusite vstaviti ničelni objekt na seznam, vrže se NullPointerException .
Element lahko dobite s seznama z uporabo metode get () . Vrednost elementa na seznamu lahko nastavite z uporabo metode set () . Podlisto lahko dobite tudi s seznama z uporabo seznama metod () . Postaja primerna za upravljanje na seznamu, namesto na seznamu.
Opredelitev ArrayList
Eden od standardnih razredov zbirke je ArrayList, ki razširja razred AbstractList in izvaja tudi vmesnik List . Razred ArrayList se uporablja za ustvarjanje dinamičnih nizov, ki rastejo in se skrčijo, kadar koli je to potrebno. Seznam, ustvarjen z uporabo razreda ArrayList, ni nič drugega kot niz objektov. Standardna matrika v Javi ima fiksno dolžino, zato morate vnaprej vedeti velikost matrike. Lahko pa se zgodi, da morda ne veste, kakšna dolžina polja potrebujete, dokler se ne izvaja. Zato je okvir zbirke uvedel razred ArrayList, da bi odpravil to težavo.
ArrayList ima konstruktorje, ki ustvarjajo matriko s svojo začetno zmogljivostjo. Čeprav se zmogljivost predmeta razreda ArrayList samodejno poveča, ko se elementi dodajo matriki, lahko še vedno ročno povečate zmogljivost objekta ArrayList z metodo sureCapacity () . Bolje je, da na začetku povečate zmogljivost niza, namesto da se pomnilnik pozneje prerazporedi. Ker je prerazporeditev dražja od porazdelitve pomnilnika hkrati.
Ključne razlike med seznamom in seznamom ArrayList
- Ena od najpomembnejših razlik med seznamom in ArrayList je, da je seznam vmesnik in ArrayList je standardni razred zbirke.
- Vmesnik s seznamom razširja okvir zbirke, medtem ko ArrayList razširja razred AbstractList in izvaja vmesnike seznama .
- Prostor imenskega vmesnika je System.Collection.Generic, medtem ko je imenski prostor za ArrayList System.Collection .
- Vmesnik seznama ustvarja zbirko elementov, ki so shranjeni v zaporedju in so identificirani ali dostopni z indeksno številko. Po drugi strani pa ArrayList ustvari niz objektov, kjer lahko polje po potrebi dinamično raste.
Sklep:
ArrayList premaga vprašanje statičnega niza v standardni Java, tj. Matrika ne more rasti v velikosti, ko je ustvarjena. Ko je matrika ustvarjena z ArrayList, se ustvari dinamično polje, ki lahko raste in se po potrebi zmanjša. Standardni razred zbirke ArrayList razširja vmesnik List.