Porovnávacia tabuľka
Základ pre porovnanie | zoznam | ArrayList |
---|---|---|
základné | Zoznam je rozhranie | ArrayList je štandardná trieda zbierky. |
syntax | zoznamu rozhraní | class ArrayList |
Predĺžiť / Implementácia | Zoznam rozhrania rozširuje kolekciu. | ArrayList rozširuje AbstractList a implementuje zoznam rozhrania. |
namespace | System.Collections.Generic. | System.Collections. |
Práca | Používa sa na vytvorenie zoznamu prvkov (objektov), ktoré sú spojené s ich indexovými číslami. | ArrayList sa používa na vytvorenie dynamického poľa, ktoré obsahuje objekty. |
Definícia zoznamu
Zoznam je rozhranie, ktoré rozširuje rámec kolekcie . Zoznam rozhrania popisuje zber prvkov, ktoré sú usporiadané postupne. Zoznam rozhrania je implementovaný týmito štandardnými triedami kolekcií ako ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Zoznam rozhrania má prvky, ktoré sú spojené s ich indexovými číslami. Prístup k prvku v zozname môžete získať podľa jeho pozície (indexu) v zozname. Zoznam vytvorený pomocou rozhrania zoznamu začína indexom založeným na nulovej hodnote.
Okrem metód zdedených kolektívnym rámcom rozhranie List tiež definuje vlastnú metódu. Metódy pridané rozhraním List sú: add (int, E) a addAll (int, Collection) . Tieto metódy pridávajú prvok do zoznamu podľa ich indexu. Metódy v rámci zoznamu môžu spôsobiť výnimku ako UnsupportedOperationException, ak metóda nemôže zmeniť zoznam. Ak je jeden objekt v zozname nekompatibilný s iným objektom v zozname, potom je triedený ClassCastException.Null prvky nie sú povolené v zozname, ak sa pokúsite vložiť nulový objekt do zoznamu, NullPointerException je hodený.
Prvok zo zoznamu môžete získať metódou get () . Hodnotu prvku v zozname môžete nastaviť pomocou metódy set () . Podlistúru môžete získať aj zo zoznamu pomocou sublistu metódy () . To sa stáva vhodným pre prácu na podsúbore namiesto zoznamu.
Definícia zoznamu ArrayList
Jednou zo štandardných kolekcií je ArrayList, ktorá rozširuje triedu AbstractList a implementuje rozhranie List . Trieda ArrayList sa používa na vytvorenie dynamických polí, ktoré rastú a zmenšujú, kedykoľvek je to potrebné. Zoznam vytvorený pomocou triedy ArrayList nie je nič iné ako pole objektov. V štandardnom poli Java má pevnú dĺžku, preto musíte vopred poznať veľkosť poľa. Možno však pravdepodobne nebudete vedieť, akú dĺžku poľa potrebujete až do doby spustenia. Preto kolekčný rámec predstavil triedu ArrayList na prekonanie tohto problému.
ArrayList má konštruktory, ktoré vytvárajú pole s jeho pôvodnou kapacitou. Aj keď sa kapacita objektu triedy ArrayList automaticky zvyšuje pri pridávaní prvkov do poľa, stále môžete ručne zvýšiť kapacitu objektu ArrayList pomocou metódy ensurecapability () . Je lepšie skôr zvýšiť kapacitu poľa namiesto opätovného prideľovania pamäte neskôr. Pretože prerozdelenie je nákladnejšie ako pridelenie pamäte naraz.
Kľúčové rozdiely medzi zoznamom a zoznamom
- Jedným z najdôležitejších rozdielov medzi zoznamom a zoznamom ArrayList je, že zoznam je rozhranie a ArrayList je štandardná trieda Collection.
- Rozhranie zoznamu rozširuje rámec kolekcie, zatiaľ čo ArrayList rozširuje triedu AbstractList a implementuje zoznamy rozhrania.
- Priestor názvov rozhrania List je System.Collection.Generic, zatiaľ čo menný priestor pre ArrayList je System.Collection .
- List rozhranie vytvára kolekciu prvkov, ktoré sú uložené v poradí a sú identifikované alebo prístupné podľa ich indexového čísla. Na druhej strane ArrayList vytvára pole objektov, kde pole môže v prípade potreby dynamicky rásť.
záver:
ArrayList prekoná problém statického poľa v štandardnej Java, tj pole nemôže rásť vo veľkosti po jeho vytvorení. Keď je pole vytvorené pomocou funkcie ArrayList, vytvorí sa dynamické pole, ktoré môže v prípade potreby rásť a zmenšiť. Štandardná zberná trieda ArrayList rozširuje rozhranie zoznamu.