Kako raditi s nizovima: Deklariranje i inicijalizacija

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

instagram viewer
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

intArray
varijabla je niz od
Ints
,
floatArray
je niz od
pluta
i
charArray
je 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

arraycopy
metoda klase System.
arraycopy
metoda se može koristiti za kopiranje svih elemenata niza ili njihovih pododjeljka. Pet je parametara proslijeđeno na
 arraycopy
metoda - 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

int 
niz:
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

arraycopy
metoda 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.