Tablica usporedbe
Osnova za usporedbu | Popis | ArrayList |
---|---|---|
Osnovni, temeljni | Popis je sučelje | ArrayList je standardna klasa zbirke. |
Sintaksa | Popis sučelja | klasa ArrayList |
Produžite / Provesti | Sučelje popisa proširuje Okvir za zbirke. | ArrayList proširuje AbstractList i implementira sučelje popisa. |
Prostor | System.Collections.Generic. | System.Collections. |
Raditi | Koristi se za izradu popisa elemenata (objekata) koji su povezani s njihovim indeksnim brojevima. | ArrayList se koristi za stvaranje dinamičkog niza koji sadrži objekte. |
Definicija popisa
Popis je sučelje koje proširuje okvir Zbirke . Popis sučelja opisuje skup elemenata koji su poredani redom. Popis sučelja implementiran je sljedećim klasama standardnih zbirki kao što su ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Sučelje popisa sadrži elemente koji su povezani s njihovim indeksnim brojevima. Elementu popisa možete pristupiti njegovim položajem (indeksom) na popisu. Popis kreiran pomoću sučelja liste počinje s indeksom na temelju nule.
Osim metoda naslijeđenih iz okvira zbirke, sučelje popisa također definira neku vlastitu metodu. Metode dodane sučeljem List su, add (int, E) i addAll (int, Collection) . Ove metode dodaju element na popis prema njihovom indeksu. Metode unutar popisa mogu baciti iznimku kao što je UnsupportedOperationException ako metoda nije u stanju izmijeniti popis. Kada je jedan objekt u popisu nekompatibilan s drugim objektom na popisu, tada je ClassCastException izbačen . Null elementi nisu dopušteni u popisu ako pokušate umetnuti null objekt na popisu, baca se NullPointerException .
Element možete dobiti s popisa pomoću metode get () . Možete postaviti vrijednost elementa u popisu pomoću metode set () . Podlistu također možete dobiti s popisa koristeći podlistu metoda () . To postaje prikladno za rad na popisu umjesto popisa.
Definicija ArrayList-a
Jedna od standardnih klasa zbirke je ArrayList koja proširuje AbstractList klasu i implementira sučelje List . Klasa ArrayList koristi se za stvaranje dinamičkih nizova koji rastu i smanjuju se kad god je to potrebno. Popis stvoren pomoću ArrayList klase nije ništa drugo nego niz objekata. U Javi, standardni niz ima fiksnu duljinu, tako da morate znati veličinu polja unaprijed. No, može biti da možda ne znate koju dužinu polja trebate do vremena izvođenja. Dakle, okvir Zbirke uveo je klasu ArrayList kako bi prevladao ovaj problem.
ArrayList ima konstruktore koji stvaraju polje sa svojim početnim kapacitetom. Iako se kapacitet objekta klase ArrayList automatski povećava kada se elementi dodaju u polje, ipak možete ručno povećati kapacitet objekta ArrayList pomoću metode provideCapacity () . Bolje je u početku povećati kapacitet niza umjesto da se kasnije ponovno dodijeli memorija. Budući da je preraspodjela skuplja od raspodjele memorije odjednom.
Ključne razlike između popisa i popisa
- Jedna od najvažnijih razlika između Liste i ArrayLista je da je popis sučelje i ArrayList je standardna klasa zbirke.
- Sučelje popisa proširuje okvir zbirke, dok ArrayList proširuje AbstractList klasu i implementira sučelja liste .
- Prostor imena za sučelje popisa je System.Collection.Generic, dok je imenski prostor za ArrayList System.Collection .
- Sučelje popisa stvara skup elemenata koji su pohranjeni u nizu i koji se identificiraju ili im se pristupa prema broju indeksa. S druge strane, ArrayList stvara niz objekata u kojima polje može dinamički rasti kada je to potrebno.
Zaključak:
ArrayList nadilazi pitanje statičkog niza u standardnom Java-u, tj. Polje ne može rasti u veličini nakon što je stvoreno. Kada je niz stvoren pomoću ArrayList, kreira se dinamički niz koji može rasti i smanjivati veličinu kada je to potrebno. Standardna klasa kolekcije ArrayList proširuje sučelje popisa.