Jei programa turi veikti su tomis pačiomis reikšmėmis duomenų tipas, galėtumėte paskelbti a kintamasis kiekvienam skaičiui. Pvz., Programa, rodanti loterijos numerius:
int lotteryNumber1 = 16;
int lotteryNumber2 = 32;
int lotteryNumber3 = 12;
int lotteryNumber4 = 23;
int lotteryNumber5 = 33;int lotteryNumber6 = 20;
Elegantiškesnis būdas susieti grupes su vertybėmis yra masyvo naudojimas. Masyvas yra konteineris, kuriame yra fiksuotas duomenų tipo verčių skaičius. Aukščiau pateiktame pavyzdyje loterijų numeriai gali būti sugrupuoti į masyvą:
int [] loterijos numeriai = {16,32,12,23,33,20};
Pagalvokite apie masyvą kaip dėžutės eilę. Laukelių skaičius masyve negali pasikeisti. Kiekviename laukelyje gali būti reikšmė, jei ji yra to paties tipo duomenų, kaip ir kituose laukeliuose esančios vertės. Galite pasižiūrėti į dėžutės vidų, kad pamatytumėte, kokią vertę joje yra, arba pakeisti dėžutės turinį kita reikšme. Kai kalbame apie masyvus, langeliai vadinami elementais.
Masyvo paskelbimas ir inicijavimas
Masyvo deklaracijos pareiškimas yra panašus į įprastą deklaruoja bet kurį kitą kintamąjį. Jame yra duomenų tipas, po kurio nurodomas masyvo pavadinimas - skirtumas skiriasi tik su duomenų tipu: skliausteliuose:
int [] intArray;
plūduriuoti [] floatArray;char [] charArray;
deklaracijos pareiškimai aukščiau pasakykite sudarytojui, kad
intarpaskintamasis yra masyvas
ints,
floatArrayyra masyvas
plūdėsir
charArrayyra ženklų masyvas. Kaip ir bet kuris kintamasis, jie negali būti naudojami, kol jis nėra inicializuotas, jam priskiriant vertę. Masyvo vertės priskyrimas masyvui turi apibrėžti masyvo dydį:
intArray = naujas int [10];
Skaičius skliausteliuose nurodo, kiek elementų turi masyvas. Aukščiau pateiktas priskyrimo teiginys sukuria int masyvą, kuriame yra dešimt elementų. Žinoma, nėra jokios priežasties, kodėl deklaracija ir paskyrimas negali įvykti viename pareiškime:
float [] floatArray = naujas plūdas [10];
Masyvai neapsiriboja pirminiais duomenų tipais. Galima sukurti objektų masyvus:
Styginių [] pavadinimai = nauja stygų [5];
Naudojant masyvą
Inicializavę masyvą, elementai gali jiems priskirti reikšmes, naudodami masyvo rodyklę. Indeksas nusako kiekvieno elemento vietą masyve. Pirmasis elementas yra ties 0, antrasis - 1 ir t. Svarbu pažymėti, kad pirmojo elemento rodyklė yra 0. Nesunku pagalvoti, nes masyve yra dešimt elementų, todėl indeksas yra nuo 1 iki 10, o ne nuo 0 iki 9. Pavyzdžiui, jei grįžtume prie loterijos numerių pavyzdžio, mes galime sukurti masyvą, kuriame yra 6 elementai, ir susieti loterijos numerius su elementais:
int [] loterijos numeriai = naujas int [6];
loterijos skaičiai [0] = 16;
loterijos skaičiai [1] = 32;
loterijos skaičiai [2] = 12;
loterijos skaičiai [3] = 23;
loterijos skaičiai [4] = 33;loterijos skaičiai [5] = 20;
Elementų reikšmių užpildymas masyve yra nuoroda pateikiant elementų reikšmes deklaracijos pareiškime:
int [] loterijos numeriai = {16,32,12,23,33,20};Stygų [] vardai = {"Jonas", "James", "Julian", "Jack", "Jonathon"};
Kiekvieno elemento vertės dedamos į garbanų skliaustų porą. Vertių tvarka lemia, kuriam elementui priskiriama vertė, pradedant nuo rodyklės padėties 0. Elementų skaičius masyve nustatomas pagal verčių skaičių garbanotųjų skliaustų viduje.
Norint gauti elemento vertę, naudojamas jo indeksas:
System.out.println („Pirmojo elemento vertė yra“ + lotteryNumbers [0]);
Norėdami sužinoti, kiek elementų turi masyvas, naudokite ilgio lauką:
System.out.println („LotteryNumbers masyvas turi“ + lotteryNumbers.length + „elements“);
Pastaba: Dažna klaida, kai naudojamas ilgio metodas, yra pamiršimas - ilgio reikšmę naudoti kaip indekso vietą. Tai visada sukels klaidą, nes masyvo rodyklės padėtys yra nuo 0 iki 1.
Daugialypiai masyvai
Masyvai, į kuriuos mes iki šiol žiūrėjome, yra žinomi kaip vienmatės (arba vienmatės) masyvai. Tai reiškia, kad jie turi tik vieną elementų eilę. Tačiau masyvai gali turėti daugiau nei vieną dimensiją. Daugialypis yra masyvas, kuriame yra masyvai:
int [] [] loterijos numeriai = {{16,32,12,23,33,20}, {34,40,3,11,33,24}};
Daugiamačio masyvo rodyklę sudaro du skaičiai:
System.out.println („Elemento 1,4 reikšmė yra“ + loterijos numeriai [1] [4]);
Nors masyvų, esančių daugialypiame masyve, ilgis neturi būti vienodas:
Styginių [] [] pavadinimai = nauja stygų [5] [7];
Kopijuoti masyvą
Lengviausias būdas nukopijuoti masyvą yra
arraycopySistemos klasės metodas.
arraycopymetodas gali būti naudojamas nukopijuoti visus masyvo elementus ar jų poskyrį. Yra perduoti penki parametrai
arraycopymetodas - pradinis masyvas, rodyklės padėtis, nuo kurios reikia pradėti kopijuoti elementą, naujasis masyvas, rodyklės padėtis, kurią reikia pradėti įterpti, elementų, kuriuos reikia nukopijuoti, skaičius:
vieša statinė tuštumų masyvokopija (Object src, int srcPos, Object dest, int destPos, int length)
Pvz., Norėdami sukurti naują masyvą, kuriame yra paskutiniai keturi an. Elementai
intmasyvas:
int [] loterijos numeriai = {16,32,12,23,33,20};
int [] newArrayNumbers = naujas int [4];„System.arraycopy“ (loterijos numeriai, 2, „newArrayNumbers“, 0, 4);
Kadangi masyvai yra fiksuoto ilgio,
arraycopymetodas gali būti naudingas būdas pakeisti masyvo dydį.
Norėdami daugiau sužinoti apie masyvus, galite sužinoti apie manipuliavimą masyvais, naudodami masyvus klasė ir dinaminių masyvų sudarymas (t. y. masyvai, kai elementų skaičius nėra fiksuotas skaičius) naudojant „ArrayList“ klasė.