1. ArrayList
klasse
Vandaag gaan we de ArrayList
klas verkennen. Dit is de eerste van verschillende klassen die collecties worden genoemd . In Java zijn verzamelingen zo'n breed en nuttig onderwerp dat er een hele CodeGym-zoektocht aan is gewijd.
Om volledig te begrijpen hoe verzamelingen zijn gestructureerd en al hun nuances, moet u eerst OOP, interfaces, overerving, de basisprincipes van multithreading en nog veel meer leren.
Dus vandaag maken we gewoon kennis met de eenvoudigste verzameling. Maar op een voldoende diep niveau zodat u begrijpt hoe u het moet gebruiken en hoe het werkt. Maak kennis met de ArrayList
collectie .
Het achtergrondverhaal
Ik zal beginnen met een beetje achtergrond. Programmeurs hielden echt niet van één aspect van arrays: het feit dat hun grootte niet kan worden gewijzigd. Wat als u nog drie elementen in een array moet opslaan, maar er is slechts één lege cel?
De enige oplossing voor de ruimtebeperkingen van een array was het maken van een zeer grote array om alle elementen die u nodig zou kunnen hebben op te slaan. Maar dit was meestal een verspilling van geheugen. Als een array gewoonlijk twee of drie elementen bevat, maar er ook maar een kleine kans is dat er 100 moeten worden opgeslagen, dan is het nodig om een array te maken met een capaciteit om er 100 op te slaan.
Dus wat hebben programmeurs bedacht? Ze schreven de ArrayList
klas, die hetzelfde werk deed als de Array
klas, maar waarvan de grootte kon worden aangepast.
ArrayList-klasse
De naam van de ArrayList
klasse bestaat uit twee woorden: Array + List. Array
is een array en List
is een lijst.
Elk ArrayList
object bevat een gewone reeks elementen. Wanneer u elementen uit een leest ArrayList
, haalt het object ze op uit zijn interne array. Wanneer u elementen schrijft, schrijft het ze naar de interne array.
De klasse ArrayList mist alle nadelen die arrays hebben. Het weet hoe:
- Bewaar elementen van een specifiek type
- Pas de grootte van de lijst dynamisch aan
- Voeg elementen toe aan het einde van de lijst
- Voeg elementen in aan het begin of midden van de lijst
- Verwijder elementen overal in de lijst
Zie hieronder voor meer informatie:
2. Een ArrayList
object maken
Om een ArrayList
object te maken, moet je code als volgt schrijven:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
Waar ArrayList
is het verzamelingstype/klasse, TypeParameter
is het type elementen dat in de ArrayList
verzameling is opgeslagen en name
is de naam van een ArrayList<TypeParameter>
variabele.
De name
variabele heeft een generiek type. Het bestaat uit twee typen: eerst wordt het type verzameling aangegeven en vervolgens worden punthaken gebruikt om het type elementen aan te geven dat in de verzameling is opgeslagen.
Voorbeelden:
Code | Beschrijving |
---|---|
|
Lijst met gehele getallen |
|
Lijst met snaren |
|
Lijst met reële getallen |
In tegenstelling tot arrays kunnen verzamelingen geen primitieve typen opslaan, alleen referentietypen . Dus als je een verzameling int
s nodig hebt, gebruik Integer
dan de wrapper-klasse.
3. Operaties met eenArrayList
Aanvankelijk is de lengte van de nieuw gemaakte lijst nul, aangezien deze 0 elementen bevat. Als u één element aan de lijst toevoegt, neemt de lengte met 1 toe. Als u het toegevoegde element verwijdert, wordt de lengte teruggebracht tot nul.
De volgende tabel kan u meer leren over de methoden van de ArrayList
klas:
methoden | Beschrijving |
---|---|
|
Voegt het doorgegeven element toe aan de lijst |
|
Voegt een element toe aan een specifieke locatie in de lijst. |
|
Retourneert het element waarvan de index isindex |
|
Wijst toe value aan het element waarvan de index isindex |
|
Verwijdert het element waarvan de index index . Retourneert het verwijderde element. |
|
Verwijdert het element dat u aan de methode doorgeeft. Als er meer dan één dergelijk element is, wordt het eerste verwijderd. |
|
Wist de lijst, dwz verwijdert alle elementen uit de lijst. |
|
Controleert of de lijst value . |
|
Controleert of de lijst leeg is of niet. Met andere woorden, of de lengte van de lijst nul is. |
|
Retourneert de grootte van de lijst, dwz het aantal elementen in de lijst. |
|
Retourneert een matrix die de elementen van de lijst bevat. U moet de array doorgeven aan de methode. |
Met deze methoden kunt u bijna alles doen wat u maar wilt met de lijst: elementen verwisselen, elementen toevoegen en elementen verwijderen. U kunt de lijst wissen met een enkele opdracht of de lijst zelfs converteren naar een array.
4. Vergelijking van ArrayList
enArray
Ik denk niet dat we vergelijken ArrayList
en een array kunnen vermijden.
Er zijn slechts 4 acties die u kunt uitvoeren met arrays:
- Maak een matrix
- Krijg een element per index
- Stel een element per index in
- Verkrijg de lengte van de array
Hier zijn deze bewerkingen zoals ze van toepassing zijn op een array en een ArrayList
:
matrix | ArrayLijst |
---|---|
|
|
|
|
|
|
|
|
Laten we vergelijken hoe een ArrayList
werkt versus hoe een array werkt. Laten we bijvoorbeeld deze taak implementeren: "lees 10 strings van het toetsenbord en geef ze in omgekeerde volgorde weer op het scherm"
Array gebruiken | ArrayList gebruiken |
---|---|
|
|
De analogie is duidelijk. Alles is op de een of andere manier korter en duidelijker voor arrays. Maar ArrayList
is ook niet moeilijk: om een element te krijgen gebruiken we de get()
methode; om een element te veranderen, de set()
methode; om de lengte van de lijst te krijgen, de size()
methode.
Dus waarom gebruiken programmeurs de ArrayList
klasse?
Het hele punt zijn natuurlijk alle andere methoden die gewone arrays niet hebben:
- Voeg een element toe aan de lijst
- Voeg een element toe aan het midden van de lijst
- Zoek een element in de lijst
- Een element uit een lijst verwijderen
GO TO FULL VERSION