Ako program treba raditi s nizom vrijednosti iste vrsta podataka, mogli biste proglasiti varijabla za svaki broj. Na primjer, program koji prikazuje brojeve lutrije:
int lutrijaNumber1 = 16;
int lutrijaNumber2 = 32;
int lutrijaNumber3 = 12;
int lutrijaNumber4 = 23;
int lutrijaNumber5 = 33;int lutrijaNumber6 = 20;
Elegantniji način bavljenja vrijednostima koje se mogu grupirati je korištenje matrice. Niz je spremnik koji sadrži fiksni broj vrijednosti vrste podataka. U gornjem primjeru, brojevi lutrije mogu se grupirati u int niz:
int [] lotteryNumbers = {16,32,12,23,33,20};
Zamislite niz kao red okvira. Broj okvira u nizu ne može se promijeniti. Svaki okvir može sadržavati vrijednost ako je iste vrste podataka kao i vrijednosti sadržane u drugim okvirima. Možete pogledati unutar okvira da vidite koju vrijednost sadrži ili zamijenite sadržaj okvira s drugom vrijednošću. Kada govorimo o nizovima, okviri se nazivaju elementima.
Izjava i inicijalizacija matrice
Izjava deklaracije za niz je slična onoj koja je navikla
deklarirati bilo koju drugu varijablu. Sadrži vrstu podataka nakon koje slijedi naziv matrice - jedina razlika je uključivanje uglatih zagrada uz vrstu podataka:int [] intArray;
float [] floatArray;char [] charArray;
deklaracijske izjave gore recite prevoditelju da
intArrayvarijabla je niz od
Ints,
floatArrayje niz od
plutai
charArrayje niz znakova. Kao i svaka varijabla, ne može ih se koristiti sve dok se ne inicijalizira dodjeljivanjem vrijednosti. Za niz, dodjeljivanje vrijednosti nizu mora definirati veličinu matrice:
intArray = novi int [10];
Broj u zagradama definira koliko elemenata sadrži niz. Gornja izjava o zadatku stvara int niz s deset elemenata. Naravno, nema razloga zašto se deklaracija i dodjeljivanje ne mogu dogoditi u jednoj izjavi:
float [] floatArray = novi float [10];
Nizovi nisu ograničeni na primitivne vrste podataka. Mogu se stvoriti nizovi objekata:
String [] imena = novi niz [5];
Upotreba matrice
Jednom kada je niz inicijaliziran, elementi mogu imati dodijeljene vrijednosti pomoću indeksa matrice. Indeks definira položaj svakog elementa u nizu. Prvi element je na 0, drugi element na 1 i tako dalje. Važno je napomenuti da je indeks prvog elementa 0. Lako je to pomisliti, jer niz ima deset elemenata da je indeks od 1 do 10, umjesto od 0 do 9. Na primjer, ako se vratimo na primjer brojeva lutrije, možemo stvoriti niz koji sadrži 6 elemenata i elementima dodijeliti brojeve lutrije:
int [] lotteryNumbers = novi int [6];
lutrijaNumbers [0] = 16;
lutrijaNumbers [1] = 32;
lutrijaNumbers [2] = 12;
lutrijaNumbers [3] = 23;
lutrijaNumbers [4] = 33;lutrijaNumbers [5] = 20;
Postoji prečac za popunjavanje elemenata u nizu stavljanjem vrijednosti za elemente u izjavu deklaracije:
int [] lotteryNumbers = {16,32,12,23,33,20};String [] names = {"John", "James", "Julian", "Jack", "Jonathon"};
Vrijednosti svakog elementa smještaju se unutar para kovrčavih zagrada. Redoslijed vrijednosti određuje kojem elementu je dodijeljena vrijednost počevši od položaja indeksa 0. Broj elemenata u nizu određuje se brojem vrijednosti unutar zavojnih zagrada.
Za dobivanje vrijednosti elementa koristi se njegov indeks:
System.out.println ("Vrijednost prvog elementa je" + lotteryNumbers [0]);
Da biste saznali koliko elemenata ima niz koristi polje duljine:
System.out.println ("Polje lotteryNumbers ima" + lotteryNumbers.length + "elementi");
Bilješka: Česta greška kod korištenja metode duljine je zaboraviti korištenje vrijednosti duljine kao pozicije indeksa. Uvijek će doći do pogreške jer su položaji indeksa niza od 0 do duljine - 1.
Višedimenzionalni nizovi
Nizovi koje smo do sada gledali poznati su kao jednodimenzionalni (ili jednodimenzionalni) nizovi. To znači da imaju samo jedan niz elemenata. Međutim, nizovi mogu imati više dimenzija. Višedimenzionalni je zapravo niz koji sadrži nizove:
int [] [] lutrijaNumbers = {{16,32,12,23,33,20}, {34,40,3,11,33,24}};
Indeks za višedimenzionalni niz sastoji se od dva broja:
System.out.println ("Vrijednost elementa 1,4 je" + lotteryNumbers [1] [4]);
Iako duljina nizova sadržanih u višedimenzionalnom polju ne mora biti jednaka:
String [] [] imena = novi niz [5] [7];
Kopiranje matrice
Da biste kopirali niz najjednostavniji je način pomoću
arraycopymetoda klase System.
arraycopymetoda se može koristiti za kopiranje svih elemenata niza ili njihovih pododjeljka. Pet je parametara proslijeđeno na
arraycopymetoda - izvorni niz, pozicija indeksa za početak kopiranja elementa iz, novi niz, pozicija indeksa za početak umetanja, broj elemenata za kopiranje:
javna statička aridkopija za void (Object src, int srcPos, Objekt dest, int destPos, int length)
Na primjer, za stvaranje novog niza koji sadrži posljednja četiri elementa an
intniz:
int [] lotteryNumbers = {16,32,12,23,33,20};
int [] newArrayNumbers = novi int [4];System.arraycopy (lutrijaNumbers, 2, newArrayNumbers, 0, 4);
Kao nizovi su fiksne duljine
arraycopymetoda može biti koristan način za promjenu veličine niza.
Proširivanjem svog znanja o nizovima možete saznati kako manipulirati nizima pomoću polja klase i izrade dinamičkih nizova (tj. nizova kada broj elemenata nije fiksni broj) koristiti ArrayList klasa.