Jämförelsediagram
Grunder för jämförelse | Lista | Arraylist |
---|---|---|
Grundläggande | Listan är ett gränssnitt | ArrayList är en standard samlingsklass. |
Syntax | gränssnittslista | klass ArrayList |
Utskjutning / Implementera | Listgränssnittet utökar samlingsramen. | ArrayList utökar AbstractList och implementerar List Interface. |
namespace | System.Collections.Generic. | System.Collections. |
Arbete | Det används för att skapa en lista över element (objekt) som är associerade med deras indexnummer. | ArrayList används för att skapa en dynamisk array som innehåller objekt. |
Definition av lista
List är ett gränssnitt som utökar samlingsramen . Listgränssnittet beskriver samlingen av element som ordnas i följd. Listgränssnittet implementeras av följande standardkollektioner som ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Listgränssnittet har element som är associerade med deras indexnummer. Du kan komma åt ett element i listan med dess position (index) i listan. En lista som skapats med List-gränssnittet börjar med ett nollbaserat index.
Förutom de metoder som arvs av Collection Framework, definierar List-gränssnittet också en viss metod. Metoderna som adderas av listgränssnittet är, lägg till (int, E) och addAll (int, Collection) . Dessa metoder lägger till ett element i listan enligt deras index. Metoder i listan kan kasta ett undantag som UnsupportedOperationException om metoden inte kan ändra listan. När ett objekt i en lista är inkompatibelt med ett annat objekt i listan, kastas ClassCastException.Nollelement är inte tillåtna i listan om du försöker infoga ett nullobjekt i listan, kastas NullPointerException .
Du kan få ett element från listan med get () -metoden. Du kan ange värdet för ett element i listan med set () -metoden. Du kan också få dellistan från listan med hjälp av en metodunderlista () . Det blir bekvämt att använda på dellistan istället för en lista.
Definition av ArrayList
En av standardkollektionsklasserna är ArrayList som sträcker sig AbstractList- klassen och implementerar även listgränssnittet. ArrayList-klassen används för att skapa de dynamiska arrangemang som växer och krympas när det behövs. Listan som skapats med klassen ArrayList är ingenting annat än en rad objekt. I Java har standardmatrisen den fasta längden, så du måste veta storleken på matrisen i förväg. Men det kan vara så att du kanske inte vet vilken längd av matrisen du behöver fram till körtiden. Därför introducerade samlingsramen ArrayList-klassen för att övervinna denna fråga.
ArrayList har konstruktörer som skapar arrayen med sin initiala kapacitet. Även om kapaciteten för objektet i klass ArrayList ökar automatiskt när element läggs till i arrayen, kan du fortfarande öka kapaciteten hos objektet ArrayList med metoden secureCapacity () . Det är bättre att öka kapaciteten hos array i början istället för att omfördela minnet senare. Eftersom omfördelningen är dyrare än att allokera minnet på en gång.
Viktiga skillnader mellan lista och ArrayList
- En av de viktigaste skillnaderna mellan List och ArrayList är att listan är ett gränssnitt och ArrayList är en standard Collection- klass .
- Listgränssnittet utökar samlingsramen medan ArrayList utökar AbstractList- klassen och implementerar listgränssnitt.
- Namnutrymmet för List-gränssnittet är System.Collection.Generic medan namnrymden för ArrayList är System.Collection .
- Listgränssnitt skapar en samling element som lagras i en sekvens och identifieras eller nås av deras indexnummer. Å andra sidan skapar ArrayList en rad objekt där matrisen kan växa dynamiskt vid behov.
Slutsats:
ArrayList övervinner problemet med en statisk array i standard Java, dvs arrayen kan inte växa i storlek när den är skapad. När en array skapas med ArrayList skapas en dynamisk grupp som kan växa och krympa i storlek när det behövs. Standardsamlingsklass ArrayList utökar listgränssnittet.