Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 8
  • Kako definirati dvodimenzionalni niz u Javi. Java Array

Kako definirati dvodimenzionalni niz u Javi. Java Array

je uređena zbirka ili numerisana lista vrijednosti veza na koji se izvršava pod zajedničkim imenom. Moglo bi biti kao primitivne vrijednosti, objekte ili čak druge nizove, ali sve vrijednosti niza moraju biti istog tipa. Tip niza je identičan tipu vrijednosti koje sadrži.

Nizovi su referentni tipovi podataka, zapravo, kao i svi drugi tipovi, osim primitivnih. Da vas još jednom podsjetim da je u Javi sve objekt, jedini izuzeci primitivni tipovi.

Nizovi mogu biti jednodimenzionalni ili višedimenzionalni.

Proces kreiranja niza može se podijeliti u tri faze:

  • Najava ( deklaracija)
  • Kreacija ( instantation)
  • Inicijalizacija ( inicijalizacija)

Deklaracija niza

U ovoj fazi se samo utvrđuje varijabla tipa veza (referenca) to array , koji sadrži tip niza. Da biste to učinili, zapišite naziv tipa elemenata niza, uglaste zagrade to označavaju deklarisana je referenca na niz , umjesto jednostavne varijable, a navedena su imena varijabli referentnog tipa, na primjer:

brojevi ; // brojevi reference na niz int
String str ; // str referenca na niz stringova
bajt
twoBytes ; // referenca na dva bajta dvodimenzionalni niz bajtova
char
pisma , cifre ; //slova i cifre reference na nizove znakova

U suštini, deklarisanje nizova je potpuno ista operacija kao i deklarisanje bilo koje druge vrste podataka, iako ima malo drugačiju sintaksu, pošto su to još uvek nizovi.

Java podržava drugu sintaksu deklaracije varijable niza koja obezbeđuje kompatibilnost sa C i C++. Prema ovoj sintaksi, jedan ili više parova uglaste zagrade slijedite ime varijable, a ne ime tipa:

arrayOfBytes ; // Isto kao bajt arrayOfBytes
bajt arrayOfArrayOfBytes ; // Isto kao bajt arrayOfArrayOfBytes
bajt arrayOfArrayOfBytes ; // Isto kao bajt arrayOfArrayOfBytes

Međutim, ova sintaksa je često zbunjujuća i treba je izbjegavati. IN sljedeći primjer, lako je zbuniti šta se mislilo:

stope , maxRate ; // možda su htjeli deklarirati dva niza?

Ova sintaksa se ne preporučuje, jer je već rečeno da je zbunjujuća, osim toga, u konvencijama o formatiranju Java koda preporučuje se sintaksa koja je prva data, odnosno uglaste zagrade odmah iza tipa niza koji se deklarira.

IN u ovom slučaju niz deklariranih vrijednosti float type sa nazivnim stopama i promenljivom float – maxRate.

Odnosno, ako se uglaste zagrade pojavljuju odmah iza tipa deklariranog niza, tada su sve varijable koje su deklarirane u ovom redu reference na nizove deklariranog tipa, a ako se zagrade pojavljuju desno od varijable, onda je samo ona referenca na niz deklariranog tipa.

To treba shvatiti ovu operaciju deklariranje niza još uvijek ne kreira niz, već samo deklarira varijablu koja je referenca na njega, koji se ne može koristiti u programu bez inicijalizacije, jer će kompajler generirati grešku da varijabla niza nije inicijalizirana.

Dok je deklarirana varijabla niza nedefinirana, ona može sadržavati (ako dodijelite) vrijednost null. I tek nakon definicije će sadržavati vezu do određeni objekat.

Nije moguće specificirati dužinu niza prilikom deklariranja varijable niza jer je veličina striktno funkcija objekta niza, a ne njegova referenca.

Instanciranje niza

U ovoj fazi se označava broj elemenata niza, koji se naziva njegova veličina, dodeljuje se prostor za niz u ram memorija, referentnu varijablu dodjeljuje operator = adresa niza. Sve ove radnje obavlja operater novo praćeno tip elementi niza. Na primjer:

= novo char [ 10 ] ;

Ali vrijedi još jednom napomenuti da prije toga varijabla slova mora biti deklarirana kao niz. Da bi bilo jasnije, može se predstaviti ovako:

pisma ; // deklarisao slova kao referencu na niz znakova
pisma = novo char [ 10 ] ; // kreirao niz znakova veličine 10 elemenata

Kada kreirate niz s ovom sintaksom, svi elementi niza se automatski inicijaliziraju na zadane vrijednosti. Ovo je netačno za booleove vrijednosti, "\u0000" za vrijednosti char, 0 za vrijednosti cijelih brojeva, 0,0 za float vrijednosti i null za objekte ili nizove.

U Javi je veličina niza fiksna. Kreirani niz se ne može povećati ili smanjiti. Željena veličina kreiranog niza određena je nenegativnim cijelim brojem. Ali bilo kada varijabilni tip niz se može upariti novi niz različite veličine. To jest, može se dodijeliti referenca na drugi niz istog tipa kao deklarirana varijabla.

Indeksi niza uvijek počinju od 0.

Prve dvije operacije: deklariranje i kreiranje niza mogu se kombinirati u jedan operator. Na primjer:

pisma = novo char [ 10 ] ;

Ovaj operator je ekvivalentan dvama gore navedenim.

Nakon ove operacije, varijabla slova će već sadržavati referencu na niz i ako pokušamo prikazati njegovu vrijednost, dobit ćemo vrijednost otprilike kao ;
int b = a;

Ali moramo imati na umu da su varijable a I b ukazuju na isti niz. Ovo u početku može biti zbunjujuće, ali ako se sjetite da imamo posla s referentnim tipovima podataka, onda sve dolazi na svoje mjesto. Ako ova točka nije jasna, onda ćemo malo kasnije sve ovo analizirati na primjerima.

= null ;

Nakon toga, niz na koji je ovaj link ukazivao se gubi ako nije bilo drugih veza do njega.

Veličina ili dužina niza može se dobiti pomoću konstante dužina , koji je definiran za svaki niz i vraća njegovu dužinu. Koristili smo ga više puta u primjerima kada smo radili s argumentima koji su proslijeđeni komandna linija.

Možete kreirati i koristiti nizove nulte dužine (prazan niz). Na primjer:

bits = novo boolean [ 0 ] ;

Nemoguće je inicijalizirati takav niz, jer jednostavno nema elemente koji se mogu inicijalizirati. Odmah se postavlja pitanje: zašto im, dovraga, trebaju ti prazni nizovi? Ali oni su neophodni, pa čak i vrlo korisni!

Uobičajeno je da se prazan niz koristi na onim mestima u programu gde se unapred ne zna da li će biti elemenata ili ne. Ako postoje elementi, onda se vraća neprazan niz; ako nema elemenata, vraća se prazan niz. Primjer bi bio niz stringova koji se prosljeđuje main() metodi i sadrži argumente komandne linije, a ako ih nema, vraća se prazan niz.

Prazan niz je bolji od null, jer ne zahtijeva poseban if za obradu.Isto vrijedi i za liste i druge kolekcije.Zato postoje metode Collections.emptyList, emptySet, emptyMap.

Inicijalizacija niza

U ovoj fazi, elementi niza primaju početne vrijednosti. Postoji nekoliko načina za inicijalizaciju elemenata niza vrijednostima:

  1. Dodijelite svakom elementu niza određenu vrijednost (to se može učiniti, na primjer, u petlji, ali prije toga niz mora već biti deklariran i kreiran)
  2. Inicijalizirajte niz navođenjem vrijednosti njegovih elemenata u vitičastim zagradama (ovo se može učiniti i u fazi deklaracije i u fazi kreiranja, ali je sintaksa drugačija)

Možete pristupiti određenom elementu niza po njegovom indeksu, koji počinje od nule, kao što je već spomenuto.

Indeksi se mogu specificirati bilo kojim cjelobrojnim izrazima osim tipa dugo , na primjer a , a , a[++i] . Performing Java sistem osigurava da vrijednosti ovih izraza ne prelaze dužinu niza. Ako dođe do izlaza, Java interpreter će prestati izvršavati program i prikazati poruku na konzoli koja ukazuje da je indeks niza otišao izvan granica svoje definicije ( ArrayIndexOutOfBoundsException).

Pogledajmo primjer prve metode inicijalizacije:

ar = novo int [ 2 ] ;
ar[ 0 ] = 1 ;
ar[ 1 ] = 2 ;

Drugi metod inicijalizacije može se implementirati na različite načine.

Inicijalizacija niza se može kombinovati sa fazom kreiranja, ali prije ove operacije niz mora već biti deklariran. Na primjer:

ar ; // deklaracija niza
ar = novo int { 1 , 2 } ; // kreiranje i inicijalizacija

Prije kreiranja i inicijalizacije niza ar već je najavljeno.

Također možete inicijalizirati niz u fazi njegovog deklariranja koristeći sljedeću sintaksu:

ar = { 1 , 2 } ; // deklaracija, kreiranje i inicijalizacija niza

Pažnja! Ova sintaksa inicijalizacije niza radi samo kada se deklarira niz i kombinuje sve tri operacije: deklaraciju, kreiranje i inicijalizaciju. Ako je niz već deklarisan, onda se ova sintaksa ne može koristiti. Kompajler će izbaciti grešku. To je:

int ar ; // deklaracija niza
ar = { 1 , 2 } ; // GREŠKA!!! kreiranje i inicijalizacija niza

Ovakva akcija neće uspjeti.

Možete inicijalizirati u fazi deklaracije i malo drugačije:

ar = novo int { 1 , 2 } ; // deklaracija, kreiranje i inicijalizacija

Iako je ova sintaksa duža. Ako ste tada primetili ovu sintaksu ovo je također kombinacija sve tri operacije: deklaracija, kreiranje i inicijalizacija.

Java pruža sintaksu koja podržava anonimne nizove (oni nisu dodijeljeni varijablama i stoga nemaju imena). Ponekad morate samo jednom koristiti niz (na primjer, proslijediti ga metodi), tako da ne želite gubiti vrijeme dodjeljujući ga varijabli, tako da možete odmah koristiti rezultat operatora novo. Na primjer:

. van . println( novo char { "H", "e", "l", "l", "o"}) ;

Sintaksa za inicijalizaciju nizova pomoću vitičastih zagrada naziva se literal jer se literal niza koristi za inicijalizaciju.

Važno je shvatiti da se literalni nizovi kreiraju i inicijalizuju tokom izvršavanja programa, a ne tokom kompilacije.. Razmotrite sljedeći literal niza:

perfectNumbers = { 6 , 28 } ;

Prevodi se u Java bajt kod ovako:

perfectNumbers = novo int [ 2 ] ;
perfectNumbers[ 0 ] = 6 ;
perfectNumbers[ 1 ] = 28 ;

Stoga, ako je potrebno da se u Java program mnogo podataka, bolje je ne uključivati ​​ih direktno u niz jer će Java kompajler morati da kreira mnogo bajtkoda za inicijalizaciju niza, a zatim će Java interpretator morati pažljivo da izvrši sav taj kod. U takvim slučajevima, bolje je sačuvati podatke eksterni fajl i pročitajte ih u program tokom njegovog izvršavanja.

Međutim, činjenica da Java inicijalizira niz u vrijeme izvođenja ima važne posljedice. To znači da su elementi literalnog niza proizvoljni izrazi procijenjeni u vrijeme izvođenja, a ne konstantni izrazi koje procjenjuje kompajler. Na primjer:

bodova = { circle1.getCenterPoint () , circle2.getCenterPoint () } ;

Ajmo sada malo da vežbamo.

Dobro poznata metoda main() koristi mogućnost vraćanja niza nulte dužine ako nema argumenata na komandnoj liniji, čime se izbjegava korištenje if naredbe za provjeru null kako bi se izbjegle greške tokom izvršavanja programa.

Odnosno, možemo odmah koristiti niz u petlji, iako slijedeći pravila kako ne bismo otišli dalje od maksimalnog indeksa.

Na početku programa ispisujemo dužinu niza, a zatim u prvoj petlji uzastopno ispisujemo sve vrijednosti elemenata niza. Druga petlja radi istu stvar, ali na uvrnut način.

Drugi primjer, zdravo, da ugodim svom mozgu, da proširiš svijest, nije ti bilo dosadno, znao si šta možeš, ali šta ne smiješ, i to čisto u edukativne svrhe. Možda u slobodno vrijeme možete shvatiti kako funkcionira drugi ciklus.

Ovaj program generira sljedeći izlaz:

U prvom slučaju nismo unijeli nijedan argument, pa smo na kraju dobili niz nulte dužine, koji nije obrađen u petljama jer nije zadovoljavao uslove petlje.

U drugom slučaju, proslijedili smo argumente na komandnoj liniji i stoga je niz obrađen u petljama.

Nizovi(nizovi) _ su uređeni skupovi elemenata istog tipa. Elementi niza mogu biti objekti jednostavnih i referentnih tipova, uključujući Broj i reference na druge nizove. Sami nizovi su objekti i

naslijediti klasu Object. Najava

int ia = novi int;

Definira niz pod nazivom ia koji inicijalno ukazuje na skup od tri elementa tip int.

Deklaracija niza ne označava njegovu dimenziju. Broj elemenata niza je specificiran kada se kreira pomoću novog operatora. Dužina niza je fiksna u trenutku kreiranja i ne može se kasnije mijenjati. Kako god, varijabla tip niza (u našem primjeru – ia) novi niz s drugom dimenzijom može se dodijeliti u bilo kojem trenutku.

Elementima niza se pristupa pomoću vrijednosti njihovih indeksnih brojeva.

Prvi element niza ima indeks, jednak nuli(0), a posljednja je dužina – 1. Elementu niza se pristupa navođenjem imena niza i vrijednosti indeksa u uglastim zagradama, [ i ]. u prethodnom primjeru, prvi element ia niza će biti ia, a posljednji element će biti ia. Kad god se indeksu pristupa elementu niza, Java runtime provjerava da li je vrijednost indeksa unutar prihvatljivih granica i izbacuje izuzetak tipa ArraylndexOutOfBoundsException ako je rezultat provjere lažan. 6 Indeksni izraz mora biti tipa int - to je sve maksimalni iznos elementi niza.

Dužina niza se može lako odrediti korištenjem polja dužine objekta niza (koje je implicitno opremljeno javnim i konačnim atributima). Ispod je ažurirani kod prethodnog primjera, koji omogućava izvršavanje petlje koja osigurava da se sadržaj svakog elementa niza ia prikaže na ekranu:

za (int i = o; i< ia.length; i++)

system.out.println(i + ": " + ia[i]);

Obično se poziva niz nulte dužine (tj. onaj koji nema elemenata). prazan. Imajte na umu da su nulta referenca niza i prazna referenca niza dvije potpuno različite stvari. Prazan niz je pravi niz koji jednostavno nema elemenata. Prazan niz pruža zgodnu alternativu za null kada se vraćate iz metode. Ako metoda može vratiti null, kod aplikacije koji poziva metodu mora uporediti vraćenu vrijednost sa null prije nego što nastavi s preostalim operacijama. Ako metoda vrati niz (moguće prazan), nisu potrebne dodatne provjere - naravno, osim onih koje se tiču ​​dužine niza, koje bi u svakom slučaju trebale biti izvršene.

Dozvoljen je i drugi oblik deklaracije niza, u kojem se uglaste zagrade navode iza identifikatora niza, a ne iza imena njegovog tipa:

int ia = novi int;

Prethodna sintaksa se, međutim, smatra poželjnijom jer čini deklaraciju tipa kompaktnijom.

Modifikatori u deklaracijama niza

Pravila za korištenje određenih nizova u deklaracijama modifikatori su uobičajene i zavise samo od toga kojoj kategoriji niz pripada - polja ili lokalne varijable. Postoji jedna stvar koju je važno zapamtiti – modifikatori se primjenjuju na sam niz, ali ne i na njegove pojedinačne elemente. Ako je konačni atribut naveden u deklaraciji niza, to samo znači da se referenca na niz ne može promijeniti nakon njegovog kreiranja, ali ni na koji način ne zabranjuje mogućnost promjene sadržaja pojedinačni elementi niz. Jezik vam ne dozvoljava da specificirate modifikatore (recimo, final ili final) za elemente niza.

Višedimenzionalni nizovi

Java podržava mogućnost deklaracije višedimenzionalni nizovi(multidimenzionalni nizovi) (tj. nizovi čiji su elementi drugi nizovi), kod koji uključuje deklarisanje dvodimenzionalne matrice i prikazivanje sadržaja njenih elemenata može izgledati, na primjer, ovako:

float mat = novi float;

setupMatrix(mat);

za (int y = o; y< mat.length; у++) {

za (int x = o; x< mat[y].length; х++)

system.out.print(mat[y][x] + " ");

system.out.println();

Prilikom kreiranja niza, mora se specificirati barem njegova prva, "krajnja lijeva" dimenzija. Druge dimenzije možda neće biti specificirane - u tom slučaju će se morati naknadno odrediti. Određivanje svih dimenzija odjednom u novom operatoru je najsažetiji način za kreiranje niza, koji vam omogućava da izbjegnete potrebu za korištenjem dodatni operateri novo. Izraz za deklarisanje i kreiranje mat niza iznad je ekvivalentan sljedećem isječku koda:

float mat = novi float;

za (int y = o; y< mat.length; у++)

mat[y] = novi float;

Ovaj oblik deklaracije ima prednost što, uz dobijanje nizova sa istim dimenzijama (recimo, 4 x 4), omogućava vam da izgradite nizove nizova različitih dimenzija neophodnih za skladištenje određenih nizova podataka.

Inicijalizacija nizova

Kada se kreira niz, svaki element prima zadanu vrijednost ovisno o tipu niza: nula (0) za numeričke tipove, '\u0000′_ za char, false za boolean i null za referentne tipove. Deklaracijom niza referentnog tipa mi zapravo definiramo niz privremeni ovaj tip. Razmotrite sljedeći isječak koda:

Attr attrs = novi Attr;

za (int i = o; i< attrs.length; i++)

attrs[i] = novi Attr(imena[i], vrijednosti[i]);

Nakon izvršenja prvog izraza koji sadrži operator new, varijabla attrs će imati referencu na niz od 12 varijabli koje su inicijalizirane na null. Sami Attr objekti će se kreirati samo kako petlja napreduje.

Niz se može inicijalizirati (istovremeno s njegovom deklaracijom) pomoću konstrukcije u vitičastim zagradama koja navodi početne vrijednosti njegovih elemenata:

String dangers = ("Lavovi", "Tigrovi", "Medvjedi");

Sljedeći isječak koda će dati isti rezultat:

String opasnosti = novi niz; opasnosti = "Lavovi";

opasnosti = "Tigrovi";

opasnosti = "Medvjedi";

Prvi oblik, koji specificira listu inicijalizatora u vitičastim zagradama, ne zahtijeva eksplicitnu upotrebu novog operatora - poziva ga indirektno sistem vremena izvršavanja. Dužina niza u ovom slučaju je određena brojem vrijednosti inicijalizatora. Također je moguće eksplicitno specificirati novi operator, ali dimenziju i dalje treba izostaviti; kao i ranije, određuje je izvršni sistem:

String dangers = new String("Lavovi", "Tigrovi", "Medvjedi");

Ovaj oblik deklaracije i inicijalizacije niza može se koristiti bilo gdje u kodu, na primjer u izrazu poziva metode:

printStringsCnew String ("jedan", "dva", "tri" ));

Poziva se niz bez naslova koji je kreiran na ovaj način anoniman(anonimno).

Nizovi nizova se mogu inicijalizirati ugniježđenim nizovima početnih vrijednosti. Ispod je primjer deklariranja niza koji sadrži prvih nekoliko redova tzv. Pascalov trougao gdje je svaki red opisan vlastitim nizom vrijednosti.

int pascalsTriangle = (

{ 1, 4, 6, 4, 1 },

Indeksi višedimenzionalnih nizova su u redu od spoljašnjeg ka unutrašnjem. Tako, na primjer, pascalsTriangle = " + arr); )

Pojednostavljena verzija petlje za izlaz niza je sljedeća:

For(int inn: arr) ( System.out.println("arr[" + inn + "] = " + arr); )

Kako izbrisati niz u Javi?

Niz u Javi možete izbrisati ovako:

Kako dobiti dužinu niza u Javi?

Dobijamo dužinu niza u Javi ovako:

int arrLength = arr.length;

Kako doći do prvog elementa niza u Javi?

int firstElem = arr;

Kako doći do poluzadnjeg elementa niza u Javi?

int lastElem = arr;

Kako definirati niz varijabilne dužine u Javi?

Kako definirati niz u Javi varijabilna dužina? Nema šanse. Kada definirate niz, tada postavljate njegovu dužinu; kasnije se ne može promijeniti. U takvim slučajevima se koriste kolekcije, na primjer: Vector, ArrayList, itd.

Dakle, dužina niza ne može biti promjenjiva. Ali možete koristiti varijablu kada definirate niz. Ako tako:

int cd;
int ab = novi int;//Greška.

tada dobijamo grešku: dužina niza ne može biti varijabla.

Morate postaviti vrijednost CD-a:

int cd = 10;
int ab = novi int;

Sada je u redu. Ako promijenite varijablu cd nakon definiranja niza, to neće utjecati na niz, tj. njegova dužina se neće promijeniti. primjer:

Int cd = 10; int ab = novi int; cd = 12;// Ovo je moguće arrLength = ab.length; System.out.println("ab dužina niza = " + arrLength); //Izlazi: dužina ab niza = 10 ab=4;// I ovdje je greška

Dobijamo grešku:

Izuzetak u niti "main" java.lang.ArrayIndexOutOfBoundsException: 11

Maksimalni indeks našeg niza je 9. Promjena vrijednosti varijable cd ne utiče na niz, jer je on već definisan i njegova dužina je konstantna.

Varijable se mogu koristiti za pristup elementima niza:

Int var = 1;
int elem = arr;
var = 2;
elem = arr;

Niz znakova u Javi

Primjer niza znakova u Javi i njegov izlaz:

Char charArr = ("S", "B", "P"); for(int inn = 0; gostionica< charArr.length; inn++) { System.out.println("charArr[" + inn + "] = " + charArr); }

Kako popuniti niz u Javi?

Niz možete popuniti pomoću metode statičkog popunjavanja.

Niz Niz Ovo je objekt koji pohranjuje fiksni broj vrijednosti istog tipa. Drugim riječima, niz je numerirana zbirka varijabli. Varijabla u nizu se poziva element niza, a njegova pozicija u nizu je data index. Na primjer, trebamo pohraniti 50 različitih imena; morate se složiti, nezgodno je kreirati zasebnu varijablu za svako ime, pa ćemo koristiti niz. Numeracija elemenata niza počinje od 0, a dužina niza se postavlja u trenutku njegovog kreiranja i fiksna je.

Radi jasnoće, slika sa koje sam uzeo Uputstvo za Java.

Da biste kreirali niz, morate ga deklarisati, rezervisati memoriju za njega i inicijalizirati ga.

Deklarisanje niza u Javi

Kada kreirate niz u Javi, prva stvar koju treba da uradite je da ga deklarirate. To se može uraditi na sljedeći način:

Int myFirstArray;

Također možete deklarirati niz ovako:

Int mySecondArray;

Međutim, ovo nije dobrodošla konvencija u Java kodu, pošto zagrade označavaju da imamo posla sa nizom i imaju više smisla kada su pored zapisa tipa.

Na osnovu ovaj primjer, deklarisali smo 2 niza sa imenima myFirstArray I mySecondArray. Oba niza će sadržavati elemente tipa int.

Niz bilo kojeg tipa možete deklarirati na ovaj način:

Byte anArrayOfBytes; short anArrayOfShorts; long anArrayOfLongs; float anArrayOfFloats; double anArrayOfDoubles; boolean anArrayOfBooleans; char anArrayOfChars; String anArrayOfStrings; ...

Tip niza je specificiran na sljedeći način: tip, gdje je tip tip podataka elemenata koje sadrži. Zagrade su posebna oznaka da su varijable sadržane u nizu. Ime niza može biti bilo koje, međutim, mora odgovarati .

Nizovi se mogu kreirati ne samo iz varijabli osnovne vrste, ali i od proizvoljnih objekata.

Kada deklarišete niz u Java jezik njegova veličina nije navedena i memorija nije rezervirana za nju. Sve što se dešava je kreiranje veze do niza.

Rezerviranje memorije za niz i njegovo inicijaliziranje.

Int myFirstArray; myFirstArray = novi int;

U našem primjeru kreirali smo niz od 15 elemenata tipa int i dodijelio ga prethodno deklariranoj varijabli myFirstArray.

Takođe možete deklarisati ime niza i rezervisati memoriju za njega u jednom redu.

Int myArray = novi int;

Prilikom kreiranja niza koristeći ključna riječ novo, svi elementi niza se automatski inicijaliziraju nulte vrijednosti. Da bi se elementima niza dodijelili početne vrijednosti, potrebno je izvršiti inicijalizacija. Inicijalizacija se može izvršiti element po element

MyFirstArray = 10; // inicijaliziranje prvog elementa myFirstArray = 20; // inicijaliziranje drugog elementa myFirstArray = 30; // itd.

i u petlji, koristeći indeks, ponavljajući sve elemente niza i dodjeljujući im vrijednosti.

For(int i = 0; i< 15; i++){ myFirstArray[i] = 10; }

Kao što se može vidjeti iz prethodnih primjera, da biste pristupili elementu niza, potrebno je navesti njegovo ime, a zatim, u uglastim zagradama, indeks elementa. Element niza sa određenim indeksom ponaša se isto kao varijabla.

Pogledajmo kreiranje i inicijalizaciju niza koristeći sljedeći primjer. U njemu kreiramo niz koji sadrži brojeve 0-9 i ispisujemo vrijednosti na konzolu.

//kreiranje i inicijalizacija niza int numberArray = new int; for(int i = 0; i< 10; i++){ numberArray[i] = i; } //вывод значений на консоль for(int i = 0; i < 10; i++){ System.out.println((i+1) + "-й элемент массива = " + numberArray[i]); }

Pojednostavljeni obrazac za snimanje

Također možete koristiti pojednostavljenu notaciju za kreiranje i inicijalizaciju niza. Ne sadrži tu riječ novo, a početne vrijednosti niza su navedene u zagradama.

Int myColor = (255, 255, 0);

Ovdje je dužina niza određena brojem vrijednosti smještenih između zagrada i odvojenih zarezima. Ova notacija je prikladnija za kreiranje malih nizova

Određivanje veličine niza

Veličina niza nije uvijek očigledna, pa da biste je saznali trebate koristiti svojstvo dužine, koje vraća dužinu niza.

MyColor.length;

Ovaj kod će nam pomoći da saznamo da je dužina niza myColor 3.

Primjer: Za 4 broja potrebno je pronaći minimum

Int brojevi = (-9, 6, 0, -59); int min = brojevi; for(int i = 0; i< numbers.length; i++){ if(min>brojevi[i]) min = brojevi[i]; ) System.out.println(min);

Vježbe na jednodimenzionalnim nizovima u Javi:

  1. Kreirajte niz koji sadrži prvih 10 neparnih brojeva. Ispišite elemente niza na konzolu u jednom redu, odvojene zarezom.
  2. Za niz dimenzija N, pronađite najmanji element niza i odštampajte ga na konzoli (ako postoji nekoliko najmanjih elemenata, ispišite ih sve).
  3. Pronađite najveći element u nizu iz zadatka 2.
  4. Zamijenite najveći i najmanji element niza. Primjer: dat je niz (4, -5, 0, 6, 8). Nakon zamjene izgledat će (4, 8, 0, 6, -5).
  5. Pronađite aritmetičku sredinu svih elemenata niza.

Posljednje ažuriranje: 09.11.2018

Niz predstavlja skup vrijednosti istog tipa. Deklariranje niza slično je deklariranju regularne varijable koja pohranjuje jednu vrijednost, a postoje dva načina da se deklarira niz:

data_type array_name; // bilo data_type array_name;

Na primjer, definirajmo niz brojeva:

Int nums; int nums2;

Nakon što deklarišemo niz, možemo ga inicijalizirati:

Int nums; nums = novi int; // niz od 4 broja

Niz se kreira pomoću sljedeće konstrukcije: novi tip_podataka[broj elemenata] , gdje je new ključna riječ koja dodjeljuje memoriju za broj elemenata navedenih u zagradama. Na primjer, nums = new int; - ovaj izraz kreira niz od četiri int elementa, a svaki element će imati zadanu vrijednost 0.

Također možete odmah inicijalizirati niz kada ga deklarirate:

Int brojevi = novi int; // niz od 4 broja int nums2 = new int; // niz od 5 brojeva

Sa takvom inicijalizacijom, svi elementi niza imaju zadanu vrijednost. Za numeričke tipove (uključujući tip char) ovo je broj 0, za boolean tip ovo je false , a za druge objekte ovo je null vrijednost. Na primjer, za tip int zadana vrijednost je 0, tako da će se gore definirani niz brojeva sastojati od četiri nule.

Međutim, možete postaviti i određene vrijednosti za elemente niza kada ga kreirate:

// ove dvije metode su ekvivalentne int nums = new int (1, 2, 3, 5); int brojevi2 = (1, 2, 3, 5);

Vrijedi napomenuti da u ovom slučaju uglaste zagrade ne označavaju veličinu niza, jer se izračunava prema broju elemenata u vitičastim zagradama.

Nakon kreiranja niza, možemo pristupiti bilo kojem njegovom elementu pomoću indeksa, koji se prosljeđuje u uglastim zagradama iza imena varijable niza:

Int brojevi = novi int; // postavlja vrijednosti elemenata niza nums = 1; brojevi = 2; brojevi = 4; brojevi = 100; // dobijemo vrijednost trećeg elementa niza System.out.println(nums); // 4

Indeksiranje elemenata niza počinje od 0, tako da u ovom slučaju, da bismo pristupili četvrtom elementu u nizu, moramo koristiti izraz nums.

A pošto je naš niz definiran za samo 4 elementa, ne možemo pristupiti, na primjer, šestom elementu: nums = 5; . Ako to pokušamo da uradimo, dobićemo grešku.

Dužina niza

Najvažnije svojstvo koje nizovi imaju je svojstvo dužine, koje vraća dužinu niza, odnosno broj njegovih elemenata:

Int brojevi = (1, 2, 3, 4, 5); int dužina = nums.length; // 5

Često je posljednji indeks nepoznat, pa se može dobiti posljednji element niz, možemo koristiti ovo svojstvo:

Int last = brojevi;

Višedimenzionalni nizovi

Prethodno smo gledali jednodimenzionalne nizove, koji se mogu predstaviti kao lanac ili niz vrijednosti istog tipa. Ali pored jednodimenzionalnih nizova, postoje i višedimenzionalni. Najpoznatiji višedimenzionalni niz- tabela koja predstavlja dvodimenzionalni niz:

Int nums1 = novi int (0, 1, 2, 3, 4, 5); int nums2 = ( ( 0, 1, 2 ), ( 3, 4, 5 ) );

Vizuelno se oba niza mogu predstaviti na sljedeći način:

Jednodimenzionalni niz nums1
Dvodimenzionalni niz nums2

Pošto je niz nums2 dvodimenzionalan, on predstavlja jednostavan sto. Može se kreirati i ovako: int nums2 = new int; . Broj uglatih zagrada označava veličinu niza. A brojevi u zagradama označavaju broj redova i kolona. Takođe, koristeći indekse, možemo koristiti elemente niza u programu:

// postavlja element prve kolone drugog reda nums2=44; System.out.println(nums2);

Deklaracija trodimenzionalnog niza može izgledati ovako:

Int nums3 = novi int;

Jagged array

Višedimenzionalni nizovi se takođe mogu predstaviti kao "nazubljeni nizovi". U gornjem primjeru, dvodimenzionalni niz je imao 3 reda i 3 kolone, tako da smo imali ravnu tabelu. Ali svakom elementu u dvodimenzionalnom nizu možemo dodijeliti poseban niz sa različite količine elementi:

Int nums = novi int; nums = novi int; nums = novi int; nums = novi int;

za svaki

Specijalna verzija za petlju je namijenjen za ponavljanje elemenata u skupovima elemenata, kao što su nizovi i kolekcije. To je slično akciji foreach petlja, koji je dostupan na drugim programskim jezicima. Njegovo zvanično saopštenje:

Za (ime_varijable tipa_podataka: kontejner)( // akcije)

Na primjer:

Int niz = novi int (1, 2, 3, 4, 5); for (int i: niz)( System.out.println(i); )

U ovom slučaju, kontejner je niz podataka tipa int. Tada se deklariše varijabla tipa int

Isto bi se moglo učiniti korištenjem regularna verzija za:

Int niz = novi int (1, 2, 3, 4, 5); za (int i = 0; i< array.length; i++){ System.out.println(array[i]); }

U isto vrijeme, ova verzija for petlje je fleksibilnija nego for (int i: array) . Konkretno, u ovoj verziji možemo promijeniti elemente:

Int niz = novi int (1, 2, 3, 4, 5); za (int i=0; i

Petlja kroz višedimenzionalne nizove

int brojevi = novi int ( (1, 2, 3), (4, 5, 6), (7, 8, 9) ); za (int i = 0; i< nums.length; i++){ for(int j=0; j < nums[i].length; j++){ System.out.printf("%d ", nums[i][j]); } System.out.println(); }

Prvo se kreira petlja za iteraciju po redovima, a zatim unutar prve petlje kreira se unutrašnja petlja za iteraciju preko stupaca određenog reda. Na sličan način možete iterirati preko trodimenzionalnih nizova i skupova s ​​velikim brojem dimenzija.

Najbolji članci na ovu temu