Hoe een Java ArrayList te gebruiken
Een Java ArrayList is een herbruikbare array voor algemeen gebruik. Het biedt de meeste voorzieningen die algemeen worden verwacht van arrays in andere talen. Deze omvatten: toegang tot elementen met behulp van een index, toevoegen, verwijderen en bijwerken van elementen, dynamische re-dimensionering, iteratie over de elementen, etc. De meeste van deze bewerkingen zijn speciaal getweaked voor algemeen gebruik..
Er zijn een paar andere soorten “arrays” (klassen die het Lijst interface, om technisch te zijn) die bestemd zijn voor speciale doeleinden. Waaronder:
- LinkedList ondersteunt snelle invoeging en verwijdering op intermediaire indices.
- Vector is vergelijkbaar met een ArrayList maar is gesynchroniseerd en is geschikt in plaats van een ArrayList voor multi-threaded applicaties.
- stack ondersteunt operaties voor het nabootsen van een last-in-first-out lijst. Het breidt het uit Vector en dus is gesynchroniseerd.
Deze speciale klassen vallen buiten het bestek van dit artikel. U zult echter leren hoe u een Java ArrayList voor algemene doeleinden kunt instellen en gebruiken.
Een ArrayList maken
Een maken ArrayList is simpel. Een lege ArrayList kan worden gemaakt door de constructor zonder argumenten te gebruiken. Hier maken we een lege ara-lijst voor het vasthouden van tekenreeksen.
ArrayList alist = nieuwe ArrayList();
Als u weet hoeveel items uw arraylijst bevat, kunt u de aanvankelijke capaciteit opgeven. Deze initiële capaciteit is slechts een hint voor geheugentoewijzing - de arraylist is niet beperkt tot het vasthouden van het opgegeven aantal items. Als u de initiële capaciteit kent en specificeert, dan doet u dat macht krijg een lichte verbetering in de prestaties.
ArrayList alist = nieuwe ArrayList(20);
Een ArrayList vullen
Items aan het einde toevoegen
Een arraylist vullen is vrij eenvoudig. Gebruik gewoon de toevoegen() methode om een enkel item toe te voegen aan het einde van de arraylist. Hier is een voorbeeld:
ArrayList alist = nieuwe ArrayList(); alist.add ( "Apple"); alist.add ( "banana"); alist.add ( "meloen"); alist.add ( "oranje"); System.out.println (alist); # prints [appel, banaan, meloen, sinaasappel]
Gebruik de methode om te achterhalen hoeveel items er in de arraylist zijn grootte().
System.out.println ("Aantal elementen in de arraylist:" + alist.size ()); # prints Aantal elementen in de arraylist: 4
Items toevoegen aan een opgegeven index
Wil je een item toevoegen aan een willekeurige index? Geef de index op als het eerste argument en het item wordt toegevoegd aan die index:
alist.add (3, "grapes"); System.out.println (alist); # prints [appel, banaan, meloen, druiven, sinaasappel]
Een stapel items toevoegen
U kunt ook items uit elke verzameling in de Java-verzamelingenhiërarchie toevoegen. Een ArrayList is een specifiek type genaamd Lijst. Hier is een manier om een te bouwen Lijst van een hoop items (met Arrays.asList ()) en voeg het toe aan een ArrayList.
Lijst items = Arrays.asList ("pear", "cherry"); alist.addAll (items); System.out.println (alist); # prints [appel, banaan, meloen, druiven, sinaasappel, peer, kers]
Natuurlijk kunt u hier een index opgeven als het eerste argument om de items toe te voegen die bij die index beginnen.
Toegang tot items
Nadat de items zijn toegevoegd aan de araylist, hoe krijgen we deze weer?
Toegang krijgen tot een index
Als u de index van het item kent, kunt u de krijgen() methode om het element bij die index op te halen.
Stringitem = alist.get (2); System.out.println ("Artikel op index 2 is:" + item); # prints Item bij index 2 is: meloen
Voorwerpen vinden
Wat als u de index van het artikel niet kent? Je kunt gebruiken index van() om te controleren of het item in de array aanwezig is en het item op te halen met behulp van de geretourneerde index.
System.out.println (alist); int index = alist.indexOf ("oranje"); if (index < 0 ) System.out.println("Item \"orange\" not found"); else System.out.println("Item \"orange\" found at index " + index); # prints [apple, banana, cantaloupe, grapes, orange, pear, cherry] Item "orange" found at index 4
Wat als het item niet aanwezig is in de arraylist? De index van() methode geeft -1 als het item niet wordt gevonden.
index = alist.indexOf ("grape"); if (index < 0 ) System.out.println("Item \"grape\" not found"); else System.out.println("Item \"grape\" found at index " + index); # prints Item "grape" not found
Itereren over een ArrayList
Natuurlijk, het meest voorkomende gebruik van een ArrayList itereert over de elementen. Dit kan op verschillende manieren worden bereikt. We laten hier een paar eenvoudige zien.
Hier is de eenvoudigste manier om een arraylist te doorzoeken en de items uit te pakken voor een of andere verwerking.
for (String fruit: alist) System.out.println ("Found fruit \" "+ fruit +" \ ""); # prints Gevonden vruchten "appel" Gevonden vruchten "bananen" Gevonden vruchten "meloen" Gevonden vruchten "druiven" Gevonden vruchten "sinaasappel" Gevonden vruchten "peer" Gevonden vruchten "kersen"
Deze code gebruikt de Java Enhanced For-Loop die werd geïntroduceerd in Java 1.5. Voordien kon je de items herhalen met een iterator. Een iterator wordt ook gebruikt wanneer dat nodig is verwijderen elementen tijdens het proces van iteratie illustreert zoals het onderstaande voorbeeld illustreert. (Merk op dat we een kopie van de arraylist maken en aan de kopie werken.)
ArrayList blist = nieuwe ArrayList(een lijst); for (Iterator iter = blist.iterator (); iter.hasNext ();) String fruit = iter.next (); if (fruit.startsWith ("c")) iter.remove (); else System.out.println ("Keeping \" "+ fruit +" \ ""); # prints Keeping "apple" Keeping "banana" Keeping "grapes" Keeping "orange" Keeping "pear"
Onderdelen vervangen
Zodra items zijn toegevoegd, hebben we een manier nodig om ongewenste items te vervangen. Dat kan gedaan worden door de set () methode met een index.
alist.set (5, "ananas"); System.out.println (alist); # prints [appel, banaan, meloen, druiven, sinaasappel, ananas, kers]
Items verwijderen
Laten we nu kijken hoe we items uit een arraylist kunnen verwijderen. Als u de index van het artikel kent (misschien heeft u het gebruikt index van() hierboven beschreven), kunt u de verwijderen() methode met de index. Het geeft het verwijderde element als resultaat.
Snaar fruit = alist.remove (2); System.out.println ("Element verwijderd bij 2:" + fruit); # prints Element verwijderd bij 2: meloen
U kunt ook het element opgeven om de te verwijderen eerste het voorkomen van het element in de lijst. De methode retourneert waar als het element is gevonden en verwijderd.
fruit = "druiven"; System.out.println ("Remove" + fruit + "uit de lijst?" + Alist.remove (fruit)); # prints druiven uit de lijst verwijderen? waar
Hoe gebruik je de ArrayList in uw projecten en welke speciale problemen heeft u ondervonden? Laat het ons weten in de comments hieronder.
Ontdek meer over: Java.