Als een programma met een aantal waarden van hetzelfde gegevenstype moet werken, kunt u voor elk nummer een variabele declareren. Bijvoorbeeld een programma dat lotnummers toont:
int lotteryNumber1 = 16;
int lotteryNumber2 = 32;
int lotteryNumber3 = 12;
int lotteryNumber4 = 23;
int lotteryNumber5 = 33;int lotteryNumber6 = 20;
Een elegantere manier om met waarden om te gaan die kunnen worden gegroepeerd, is een array te gebruiken. Een array is een container die een vast aantal waarden van een gegevenstype bevat. In het bovenstaande voorbeeld kunnen de lotnummers worden gegroepeerd in een int array:
int [] lotteryNumbers = 16,32,12,23,33,20;
Zie een reeks als een rij dozen. Het aantal vakken in de array kan niet veranderen. Elk vak kan een waarde bevatten zolang het van hetzelfde gegevenstype is als de waarden in de andere vakken. U kunt in een vak kijken om te zien welke waarde het bevat of de inhoud van het vak vervangen door een andere waarde. Wanneer het over arrays gaat, worden de vakken elementen genoemd.
De declaratie-instructie voor een array is vergelijkbaar met die voor het declareren van een andere variabele. Het bevat het gegevenstype gevolgd door de naam van de array - het enige verschil is de opname van vierkante haken naast het gegevenstype:
int [] intArray;
float [] floatArray;char [] charArray;
De aangifte verklaringen hierboven vertellen de compiler dat
intArrayvariabele is een array van
ints,
floatArrayis een reeks van
drijversen
charArrayis een reeks tekens. Zoals elke variabele kunnen ze niet worden gebruikt totdat deze is geïnitialiseerd door er een waarde aan toe te wijzen. Voor een array moet de toewijzing van een waarde aan een array de grootte van een array definiëren:
intArray = new int [10];
Het getal tussen haakjes geeft aan hoeveel elementen de array bevat. De bovenstaande toewijzingsopdracht maakt een int-array met tien elementen. Er is natuurlijk geen reden waarom de aangifte en toewijzing niet in één verklaring kunnen gebeuren:
float [] floatArray = nieuwe float [10];
Arrays zijn niet beperkt tot primitieve gegevenstypen. Arrays van objecten kunnen worden gemaakt:
String [] names = new String [5];
Nadat een array is geïnitialiseerd, kunnen aan de elementen waarden worden toegewezen met behulp van de index van de array. De index definieert de positie van elk element in de array. Het eerste element staat op 0, het tweede element op 1 enzovoort. Het is belangrijk op te merken dat de index van het eerste element 0 is. Het is gemakkelijk om te denken dat, omdat een array tien elementen heeft, de index van 1 tot 10 is in plaats van van 0 tot 9. Als we bijvoorbeeld teruggaan naar de loterij getallen voorbeeld kunnen we een array met 6 elementen maken en de lotnummers aan de elementen toewijzen:
int [] lotteryNumbers = new int [6];
lotteryNumbers [0] = 16;
lotteryNumbers [1] = 32;
lotteryNumbers [2] = 12;
lotteryNumbers [3] = 23;
lotteryNumbers [4] = 33;lotteryNumbers [5] = 20;
Er is een snelkoppeling naar het vullen van elementen in een array door de waarden voor de elementen in de verklaring op te nemen:
int [] lotteryNumbers = 16,32,12,23,33,20;String [] names = "John", "James", "Julian", "Jack", "Jonathon";
De waarden voor elk element worden geplaatst tussen een paar accolades. De volgorde van de waarden bepaalt aan welk element de waarde wordt toegewezen die begint met indexpositie 0. Het aantal elementen in de array wordt bepaald door het aantal waarden tussen de accolades.
Om de waarde van een element te krijgen, wordt de index ervan gebruikt:
System.out.println ("De waarde van het eerste element is" + lotteryNumbers [0]);
Gebruik het lengteveld om te weten te komen hoeveel elementen een array heeft:
System.out.println ("De lotteryNumbers-array heeft" + lotteryNumbers.length + "elementen");
Notitie: Een veelgemaakte fout bij het gebruik van de lengtemethode is het vergeten van de lengtewaarde als indexpositie. Dit resulteert altijd in een fout omdat de indexposities van een array 0 tot lengte zijn - 1.
De arrays die we tot nu toe hebben bekeken, staan bekend als eendimensionale (of eendimensionale) arrays. Dit betekent dat ze slechts één rij elementen hebben. Arrays kunnen echter meer dan één dimensie hebben. Een multidimensionaal is eigenlijk een array die arrays bevat:
int [] [] lotteryNumbers = 16,32,12,23,33,20, 34,40,3,11,33,24;
De index voor een multidimensionale array bestaat uit twee getallen:
System.out.println ("De waarde van element 1,4 is" + lotteryNumbers [1] [4]);
Hoewel de lengte van de arrays in een multidimensionale array niet dezelfde lengte hoeft te hebben:
String [] [] names = new String [5] [7];
Om een array te kopiëren is de eenvoudigste manier om de
arraycopymethode van de systeemklasse. De
arraycopymethode kan worden gebruikt om alle elementen van een array of een subsectie ervan te kopiëren. Er zijn vijf parameters doorgegeven aan de
arraycopymethode - de originele array, de indexpositie om te beginnen met het kopiëren van een element, de nieuwe array, de indexpositie om te beginnen met invoegen, het aantal te kopiëren elementen:
public static void arraycopy (Object src, int srcPos, Object dest, int destPos, int length)
Om bijvoorbeeld een nieuwe array te maken die de laatste vier elementen van een bevat
intarray:
int [] lotteryNumbers = 16,32,12,23,33,20;
int [] newArrayNumbers = new int [4];System.arraycopy (lotteryNumbers, 2, newArrayNumbers, 0, 4);
Omdat arrays een vaste lengte hebben, is de
arraycopymethode kan een handige manier zijn om de grootte van een array te wijzigen.
Om uw kennis over arrays te vergroten, kunt u leren hoe u arrays kunt manipuleren met de klasse Arrays en dynamische arrays kunt maken (d.w.z. arrays wanneer het aantal elementen geen vast nummer is) met de klasse ArrayList.