Standaard arrays in Java zijn vast in het aantal elementen dat ze kunnen hebben. Als u de elementen in een array wilt verhogen of verlagen, moet u een nieuwe array maken met het juiste aantal elementen uit de inhoud van de oorspronkelijke array. Een alternatief is om de ArrayList
klasse. De ArrayList
klasse biedt de middelen om dynamische arrays te maken (d.w.z. hun lengte kan toenemen en afnemen).
java.util.ArrayList importeren;
Een ArrayList
kan worden gemaakt met behulp van de eenvoudige constructor:
ArrayList dynamicArray = new ArrayList ();
Dit maakt een ArrayList
met een initiële capaciteit voor tien elementen. Als een grotere (of kleinere) ArrayList
is vereist, kan de initiële capaciteit aan de constructor worden doorgegeven. Om ruimte te maken voor twintig elementen:
ArrayList dynamicArray = new ArrayList (20);
Gebruik de methode toevoegen om een waarde toe te voegen aan de ArrayList
:
dynamicArray.add (10); dynamicArray.add (12); dynamicArray.add (20);
Notitie: De ArrayList
slaat alleen objecten op, hoewel de bovenstaande regels int-waarden lijken toe te voegen ArrayList
deze worden automatisch gewijzigd in Geheel getal
objecten zoals ze zijn toegevoegd aan de ArrayList
.
Een standaardarray kan worden gebruikt om een te vullen ArrayList
door het te converteren naar een lijstcollectie met de methode Arrays.asList en toe te voegen aan de ArrayList
de ... gebruiken Voeg alles toe
methode:
String [] names = "Bob", "George", "Henry", "Declan", "Peter", "Steven"; ArrayList dynamicStringArray = new ArrayList (20); dynamicStringArray.addAll (Arrays.asList (namen));
Een ding om op te merken ArrayList
is dat de elementen niet van hetzelfde objecttype moeten zijn. Hoewel de dynamicStringArray
is ingevuld door String-objecten, kan deze nog steeds getalwaarden accepteren:
dynamicStringArray.add (456);
Om de kans op fouten te minimaliseren, kunt u het beste het type objecten opgeven dat u wilt ArrayList
te bevatten. Dit kan in de aanmaakfase worden gedaan met behulp van generieke geneesmiddelen:
ArrayList dynamicStringArray = new ArrayList (20);