Kako postaviti pametne telefone i računala. Informativni portal

Kako postaviti 2D niz u Javi. Java polje

je uređena zbirka ili numerirani popis vrijednosti veza koji se izvršava zajedničkim imenom. To mogu biti primitivne vrijednosti, objekti ili čak drugi nizovi, ali sve vrijednosti niza moraju biti istog tipa. Tip niza identičan je tipu vrijednosti koje sadrži.

Nizovi su referentni tipovi podataka, zapravo, kao i sve druge vrste, osim primitivnih. Dopustite mi da vas još jednom podsjetim da je u Javi sve objekt, jedina iznimka su primitivni tipovi.

Nizovi mogu biti jednodimenzionalni ili višedimenzionalni.

Proces stvaranja niza može se podijeliti u tri koraka:

  • Obavijest ( deklaracija)
  • Stvaranje ( instantacija)
  • inicijalizacija ( inicijalizacija)

Deklaracija niza

Samo u ovoj fazi varijabla tipa veza (referenca) po nizu A koji sadrži vrstu niza. Da biste to učinili, piše se naziv vrste elemenata niza, uglate zagrade označavaju da deklarirana je referenca niza , a ne jednostavna varijabla, a navedena su imena varijabli referentnog tipa, na primjer:

brojevima ; // brojevi su referenca na niz int
Niz str ; // str je referenca na niz stringova
bajt
dva bajta ; // twoBytes referenca na dvodimenzionalni niz bajtova
char
slova , znamenke ; //slova i znamenke su reference na niz znakova

U biti, deklaracija nizova potpuno je ista operacija kao i deklaracija bilo kojeg drugog tipa podataka, iako ima malo drugačiju sintaksu, budući da su to svi isti nizovi.

Java podržava drugu sintaksu za deklariranje varijabli polja, osiguravajući kompatibilnost s C i C++. Prema ovoj sintaksi, jedan ili više parova uglatih zagrada slijede naziv varijable, a ne naziv tipa:

arrayOfBytes ; // Isto kao niz bajtovaOfBytes
bajt arrayOfArrayOfBytes ; // Isto kao niz bajtovaOfArrayOfBytes
bajt arrayOfArrayOfBytes ; // Isto kao niz bajtovaOfArrayOfBytes

Međutim, ova sintaksa je često zbunjujuća i treba je izbjegavati. U sljedećem primjeru lako je zbuniti što se misli:

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

Ova sintaksa se ne preporučuje, jer je već rečeno da je zbunjujuća, osim toga, u konvencijama za dizajn Java koda, preporučuje se sintaksa koja je navedena prva, odnosno uglate zagrade odmah slijede tip deklariranog niz.

U ovom slučaju deklariraju se niz float vrijednosti nazvanih rates i varijabla tipa float maxRate.

To jest, ako su uglate zagrade odmah iza tipa deklariranog niza, tada su sve varijable koje su deklarirane u ovom retku reference na nizove deklariranog tipa, a ako su zagrade desno od varijable, tada je samo ona referenca na niz deklariranog tipa.

Treba razumjeti da ova operacija deklaracije niza još ne stvara niz, već samo deklarira varijablu koja je referenca na njega, koji se ne može koristiti u programu bez inicijalizacije, budući da će prevodilac dati pogrešku da varijabla polja nije inicijalizirana.

Sve dok deklarirana varijabla niza nije definirana, može sadržavati (ako dodijelite) vrijednost ništavan. I tek nakon definicije sadržavat će referencu na određeni objekt.

Nije moguće navesti duljinu niza kada se deklarira varijabla niza jer je veličina strogo funkcija objekta niza, a ne referenca na njega.

Instanciranje niza

U ovoj fazi, naznačen je broj elemenata niza, koji se naziva njegova veličina, alocirano je mjesto za niz u RAM-u, referentna varijabla dodjeljuje operator = adresa polja. Sve ove radnje izvodi operater novi slijedi vrsta elementi niza. Na primjer:

= novi char [ 10 ] ;

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

slova ; // deklarirana slova kao referenca na niz znakova
slova = novi char [ 10 ] ; // stvorio niz znakova veličine 10 elemenata

Prilikom stvaranja polja s ovom sintaksom, svi elementi polja automatski se inicijaliziraju sa zadanim vrijednostima. Netočno je za Booleove vrijednosti, "\u0000" za char vrijednosti, 0 za vrijednosti cijelog broja, 0,0 za vrijednosti s pomičnim zarezom i null za objekte ili nizove.

U Javi je veličina niza fiksna. Stvoreni niz se ne može povećati ili smanjiti. Željena veličina kreiranog niza dana je nenegativnim cijelim brojem. Ali u bilo kojem trenutku, varijabli tipa niza može se dodijeliti novi niz različite veličine. To jest, može se dodijeliti referenca na drugi niz istog tipa kao što je deklarirana varijabla.

Indeksi polja uvijek počinju od 0.

Prve dvije operacije: deklariranje i stvaranje niza mogu se kombinirati u jednu izjavu. Na primjer:

slova = novi char [ 10 ] ;

Ovaj operator je ekvivalentan dvama gore navedenim.

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

Ali mora se imati na umu da varijable a i b pokazuju na isti niz. U početku to može biti zbunjujuće, ali ako se sjetite da imamo posla s referentnim tipovima podataka, onda sve sjeda na svoje mjesto. Ako ova točka nije jasna, onda ćemo malo kasnije sve ovo analizirati s primjerima.

= ništavan ;

Nakon toga, niz na koji ukazuje ova referenca se gubi ako nije bilo drugih referenci na njega..

Veličina ili duljina niza može se dobiti pomoću konstante duljina , koji je definiran za svaki niz i vraća njegovu duljinu. Već smo ga koristili više puta u primjerima kada smo radili s argumentima proslijeđenim na naredbenom retku.

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

komadići = novi Booleov [ 0 ] ;

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

Prazan niz se obično koristi na onim mjestima u programu gdje se ne zna unaprijed hoće li biti elemenata ili ne. Ako ima elemenata, vraća se neprazan niz; ako nema elemenata, vraća se prazan niz. Primjer je niz nizova koji se prosljeđuje metodi main() i sadrži argumente naredbenog retka, a ako ih nema, vraća se prazan niz.

Prazan niz je bolji od ništavan, jer ne zahtijeva odvojeno if "i za obradu. Isto vrijedi za liste i druge kolekcije. Zato postoje metode Collections.emptyList, emptySet, emptyMap.

Inicijalizacija polja

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

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

Odnosi se na određeni element niza svojim indeksom, koji počinje od nule, kao što je već spomenuto.

Indeksi se mogu odrediti bilo kojim cjelobrojnim izrazom, osim tipa dugo , na primjer a , a , a[++i] . Java runtime sustav osigurava da vrijednosti ovih izraza ne prelaze duljinu niza. Ako se izlaz ipak dogodi, Java interpreter će zaustaviti izvođenje programa i prikazati poruku na konzoli o tome da indeks polja prelazi granice svoje definicije ( ArrayIndexOutOfBoundsException).

Razmotrite primjer prvog načina inicijalizacije:

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

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

Inicijalizacija polja može se kombinirati s korakom stvaranja, ali prije ove operacije niz mora već biti deklariran. Na primjer:

ar ; // deklaracija niza
ar = novi int { 1 , 2 } ; // stvaranje i inicijalizacija

Prije stvaranja niza i inicijalizacije ar već je najavljeno.

Također možete inicijalizirati niz u fazi njegove deklaracije sljedećom sintaksom:

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

Pažnja! Ova sintaksa inicijalizacije niza radi samo kada je niz deklariran i kombinira sve tri operacije odjednom: deklaraciju, stvaranje i inicijalizaciju. Ako je polje već deklarirano, tada se ova sintaksa ne može koristiti. Kompajler će izbaciti pogrešku. To je:

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

Takva akcija neće uspjeti.

Također možete inicijalizirati u fazi deklaracije i malo drugačije:

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

Iako je ova sintaksa duža. Ako primijetite, onda je ova sintaksa također kombinacija sve tri operacije: deklaracije, stvaranja i inicijalizacije.

Java pruža sintaksu koja podržava anonimne nizove (nisu dodijeljeni varijablama i stoga nemaju imena). Ponekad se niz treba upotrijebiti samo jednom (na primjer, proslijediti metodi), tako da ne želite gubiti vrijeme na njegovo dodjeljivanje varijabli, tako da možete odmah koristiti rezultat naredbe. novi. Na primjer:

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

Sintaksa za inicijaliziranje nizova s ​​vitičastim zagradama naziva se literal, jer se za inicijalizaciju koristi niz literala.

Važno je razumjeti da se literalni nizovi stvaraju i inicijaliziraju tijekom izvođenja, a ne tijekom kompajliranja.. Razmotrite sljedeći literal niza:

savršeniBrojevi = { 6 , 28 } ;

Kompajlira se u ovaj Java bajt kod:

savršeniBrojevi = novi int [ 2 ] ;
savršeniBrojevi[ 0 ] = 6 ;
savršeniBrojevi[ 1 ] = 28 ;

Stoga, ako trebate staviti puno podataka u Java program, najbolje je da ih ne uključite izravno u polje, jer će Java kompajler morati stvoriti mnogo bajtkoda za inicijalizaciju polja, a onda će Java interpreter morati mukotrpno izvršite sav ovaj kod. U takvim slučajevima, bolje je pohraniti podatke u vanjsku datoteku i pročitati ih u programu tijekom izvođenja.

Međutim, činjenica da Java inicijalizira niz tijekom izvođenja ima važne implikacije. To znači da su elementi literalnog niza proizvoljni izrazi evaluirani tijekom izvođenja, a ne konstantni izrazi koje evaluira kompilator.. Na primjer:

bodova = { krug1.getCenterPoint () , krug2.getCenterPoint () } ;

Sada malo vježbajmo.

Dobro poznata metoda main() koristi mogućnost vraćanja niza nulte duljine ako nema argumenata u naredbenom retku, što vam omogućuje da izbjegnete korištenje naredbe if za provjeru nule kako biste izbjegli pogrešku tijekom izvođenja programa .

To jest, možemo odmah upotrijebiti niz u petlji, ali slijedeći pravila da ne idemo dalje od maksimalnog indeksa.

Na početku programa ispisujemo vrijednost duljine niza, a zatim u prvoj petlji sekvencijalno ispisujemo sve vrijednosti elemenata niza. Druga petlja čini isto, ali na izopačen način.

Drugi primjer je zdravo da zadovoljite svoj mozak da proširite svoju svijest, nije vam bilo dosadno znati kako to učiniti, ali kako to ne učiniti, pa, čisto u obrazovne i obrazovne svrhe. Možda ćete u slobodno vrijeme shvatiti kako funkcionira drugi ciklus.

Ovaj program generira sljedeći izlaz:

U prvom slučaju nismo unijeli argumente, pa smo dobili niz nulte duljine, koji nije obrađen u petljama, jer ne zadovoljava uvjete petlji.

U drugom slučaju, proslijedili smo argumente na naredbenom retku i stoga je niz obrađen u ciklusima.

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

naslijediti klasu Object. Obavijest

int ia = novi int;

Definira niz pod nazivom ia, koji inicijalno pokazuje na skup od tri elementa tipa int.

Deklaracija niza ne specificira njegovu dimenziju. Broj elemenata niza naveden je kada se kreira pomoću novog operatora. Duljina niza je fiksna u trenutku stvaranja i ne može se kasnije mijenjati. Međutim, varijabla vrsta polja (u našem primjeru - ia) u bilo kojem trenutku može se dodijeliti novo polje s drugom dimenzijom.

Elementima niza se pristupa vrijednostima njihovih indeksnih brojeva.

Prvi element niza ima indeks nula (0), a posljednji element ima duljinu - 1. Elementu niza se pristupa navođenjem imena niza i vrijednosti indeksa, u uglatim zagradama, [ i ]. u prethodnom primjeru, prvi element niza ia bio bi ia, a posljednji element bio bi ia. Kad god se elementu niza pristupi putem indeksa, Java runtime sustav provjerava je li vrijednost indeksa unutar granica i izbacuje ArrayIndexOutOfBoundsException ako je rezultat lažan. 6 Izraz indeksa mora biti tipa int - ovo je jedino ograničenje maksimalnog broja elemenata niza.

Duljina niza lako se određuje pomoću polja duljine objekta niza (koje je implicitno označeno javnim i konačnim). Evo ažuriranog koda za prethodni primjer koji pokreće petlju koja ispisuje sadržaj svakog elementa ia niza na zaslon:

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

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

Niz nulte duljine (to jest onaj u kojem nema elemenata) obično se naziva prazan. Imajte na umu da su nulta referenca polja i prazna referenca polja potpuno različite stvari. Prazan niz je pravi niz koji jednostavno nema elemenata. Prazan niz je prikladna alternativa za null kada se vraćate iz metode. Ako metoda može vratiti null, aplikacijski kod u kojem se metoda poziva mora usporediti vraćenu vrijednost s null prije nastavka s ostatkom operacija. Ako metoda vrati niz (eventualno prazan), nisu potrebne nikakve dodatne provjere - naravno, osim onih koje se tiču ​​duljine niza i koje svakako treba izvršiti.

Dopušten je i drugi oblik deklaracije niza, u kojem se uglate zagrade navode nakon identifikatora niza, a ne iza naziva njegovog tipa:

int ia = novi int;

Međutim, prethodna sintaksa je poželjnija jer je deklaracija tipa kompaktnija.

Modifikatori u deklaracijama polja

Pravila za korištenje određenih nizova u deklaracijama modifikatori su uobičajeni i ovise samo o tome pripada li niz poljima ili lokalnim varijablama. Postoji jedna stvar koju je važno zapamtiti - modifikatori se primjenjuju na niz kao takav, ali ne i na njegove pojedinačne elemente. Ako deklaracija niza sadrži konačnu zastavu, to samo znači da se referenca na niz ne može mijenjati nakon njegove izrade, ali ni na koji način ne zabranjuje mogućnost promjene sadržaja pojedinih elemenata niza. Jezik vam ne dopušta navođenje bilo kakvih modifikatora (recimo, final ili uolatile) za elemente niza.

Višedimenzionalni nizovi

Java podržava mogućnost deklariranja višedimenzionalni nizovi(višedimenzionalni nizovi) (tj. nizovi čiji su elementi drugi nizovi), kod koji deklarira dvodimenzionalnu matricu i prikazuje sadržaj njezinih elemenata na ekranu može izgledati ovako:

float mat = novi plovak;

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 izrade niza, mora se navesti barem njegova prva, "krajnja lijeva" dimenzija. Druge dimenzije možda neće biti navedene - u ovom slučaju će se morati odrediti kasnije. Određivanje svih dimenzija odjednom u novom operatoru najsažetiji je način za stvaranje niza, izbjegavajući potrebu za dodatnim novim operatorima. Gornja izjava o matričnom nizu i izjava o stvaranju ekvivalentna je sljedećem isječku koda:

float mat = novi plovak;

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

mat[y] = novi float;

Ovaj oblik deklaracije ima prednost što omogućuje, uz dobivanje nizova istih dimenzija (recimo 4 x 4), izgradnju nizova nizova različitih dimenzija potrebnih za pohranu određenih nizova podataka.

Inicijalizacija polja

Kada se stvori polje, svakom elementu se dodjeljuje zadana vrijednost ovisno o vrsti polja: 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 trudna ove vrste. 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 što se izvrši prvi izraz koji sadrži novi operator, varijabla attrs imat će referencu na niz od 12 varijabli koje su inicijalizirane na null. Objekti Attr kao takvi bit će stvoreni samo tijekom petlje.

Niz se može inicijalizirati (istovremeno s 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 dat će isti rezultat:

Opasnosti niza = novi niz; opasnosti = "Lavovi";

opasnosti = "Tigrovi";

opasnosti = "Medvjedi";

Prvi oblik, koji uključuje određivanje popisa inicijalizatora u vitičastim zagradama, ne zahtijeva eksplicitnu upotrebu novog operatora - neizravno ga poziva sustav za izvršavanje. Duljina niza u ovom slučaju određena je brojem vrijednosti inicijalizatora. Također je moguće eksplicitno navesti novi operator, ali dimenziju i dalje treba izostaviti; kao i prije, nju određuje sustav izvršenja:

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

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

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

Neimenovani niz koji je kreiran na ovaj način se zove anoniman(anonimno).

Nizovi nizova mogu se inicijalizirati ugniježđenim nizovima početnih vrijednosti. Slijedi primjer deklariranja niza koji sadrži prvih nekoliko redaka tzv Pascalov trokut gdje je svaki redak opisan vlastitim nizom vrijednosti.

int pascalsTriangle = (

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

Indeksi višedimenzionalnog niza poredani su od vanjskog prema unutarnjem. 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?

Možete izbrisati niz u Javi ovako:

Kako dobiti duljinu niza u Javi?

Duljinu niza u Javi dobivamo ovako:

int arrLength = arr duljina;

Kako dobiti prvi element niza u Javi?

int firstelem = arr;

Kako dobiti zadnji polovični element niza u Javi?

int lastElem = arr;

Kako postaviti niz promjenjive duljine u Javi?

Kako postaviti niz promjenjive duljine u Javi? Nema šanse. Kada definirate niz, tada postavite njegovu duljinu, ne možete je kasnije promijeniti. U takvim slučajevima koriste se kolekcije, na primjer: Vector, ArrayList itd.

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

int cd;
int ab = novo int;//Pogreška.

tada dobivamo pogrešku, duljina niza ne može biti varijabla.

Morate postaviti vrijednost cd:

int cd = 10;
int ab = novi int;

Sad ok. Ako se nakon definiranja niza promijeni cd varijabla, 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 duljina niza = " + arrLength); //Izlaz: ab duljina niza = 10 ab=4;// I ovdje je pogreška

Dobivamo pogrešku:

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

Maksimalni indeks našeg niza je 9. Promjena vrijednosti varijable cd ne utječe na niz jer je on već definiran i njegova je duljina 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"); za (int gostionica = 0; gostionica< charArr.length; inn++) { System.out.println("charArr[" + inn + "] = " + charArr); }

Kako popuniti niz u Javi?

Niz se može popuniti metodom statičkog popunjavanja.

niz (engleski niz) to je objekt koji pohranjuje fiksni broj vrijednosti istog tipa. Drugim riječima, niz je numerirana zbirka varijabli. Poziva se varijabla u nizu element niza, a njegov položaj u nizu je dan sa indeks. Na primjer, trebamo pohraniti 50 različitih imena, vidite, nezgodno je kreirati zasebnu varijablu za svako ime, pa ćemo koristiti niz. Numeriranje elemenata niza počinje od 0, a duljina niza se postavlja u trenutku njegovog kreiranja i fiksna je.

Radi jasnoće, slika s koje sam uzeo Vodič za Java.

Da biste kreirali niz, morate ga deklarirati, rezervirati memoriju za njega i inicijalizirati ga.

Deklaracija polja u Javi

Kada stvarate niz u Javi, prvi korak je da ga deklarirate. To se može učiniti ovako:

Int myFirstArray;

Također možete deklarirati niz ovako:

int mySecondArray;

Međutim, ovo nije dobrodošlo u konvenciji kodiranja u Javi, jer zagrade pokazuju da imamo posla s nizom i imaju više smisla kada su pored oznake tipa.

Na temelju ovog primjera, deklarirali smo 2 niza pod nazivom mojPrviNiz i mySecondArray. Oba niza će sadržavati elemente tipa int.

Slično, možete deklarirati niz bilo koje vrste:

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

Tip niza zadan je tipom, gdje je tip tip podataka elemenata koje sadrži. Zagrade su posebna indikacija da su varijable sadržane u nizu. Naziv polja može biti bilo koji, međutim, mora odgovarati .

Nizovi se mogu kreirati ne samo od varijabli osnovnih tipova, već i od proizvoljnih objekata.

Kada je polje deklarirano u jeziku Java, njegova veličina nije navedena i za njega nije rezervirana memorija. Stvara samo referencu na niz.

Rezervacija memorije za niz i njegova inicijalizacija.

Int myFirstArray; mojPrviNiz = novi int;

U našem primjeru, stvorili smo niz od 15 elemenata tipa int i dodijelio ga prethodno deklariranoj varijabli mojPrviNiz.

Također možete deklarirati naziv niza i rezervirati memoriju za njega u istom retku.

int moj niz = novi int;

Prilikom izrade niza pomoću ključne riječi novi, svi elementi niza automatski se inicijaliziraju na nulte vrijednosti. Da bi se elementima niza dodijelile početne vrijednosti, potrebno ga je provesti inicijalizacija. Inicijalizacija se može izvršiti element po element

MojPrviNiz = 10; // inicijalizacija prvog elementa myFirstArray = 20; // inicijalizacija drugog elementa myFirstArray = 30; // itd.

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

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

Kao što možete vidjeti iz prethodnih primjera, da biste uputili na element niza, morate navesti njegovo ime, a zatim u uglatim zagradama indeks elementa. Element niza na određenom indeksu ponaša se isto kao varijabla.

Razmotrite stvaranje i inicijalizaciju niza koristeći sljedeći primjer. U njemu stvaramo 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]); }

Pojednostavljena notacija

Također možete koristiti pojednostavljenu notaciju za stvaranje i inicijaliziranje niza. Ne sadrži riječ novi, a početne vrijednosti niza navedene su u zagradama.

int mojaBoja = (255, 255, 0);

Ovdje je duljina niza određena brojem vrijednosti između zagrada, odvojenih zarezima. Ova notacija je prikladnija za stvaranje malih nizova.

Određivanje veličine niza

Veličina niza nije uvijek očita, pa da biste to saznali, koristite svojstvo length koje vraća duljinu niza.

MyColor.length;

Ovaj kod će nam pomoći da znamo da je duljina niza myColor 3.

Primjer: dana su 4 broja, morate 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. Napravite niz koji sadrži prvih 10 neparnih brojeva. Ispišite elemente niza na konzolu u jednom retku, odvojene zarezom.
  2. Zadan je niz dimenzija N, pronaći najmanji element niza i ispisati u konzolu (ako ima više najmanjih elemenata, ispisati ih sve).
  3. U nizu iz zadatka 2. pronađite najveći element.
  4. Zamijenite najveće i najmanje elemente niza. Primjer: Zadan je niz (4, -5, 0, 6, 8). Nakon zamjene izgledat će kao (4, 8, 0, 6, -5).
  5. Nađite aritmetičku sredinu svih elemenata niza.

Zadnja izmjena: 09.11.2018

Niz predstavlja skup vrijednosti istog tipa. Deklariranje niza je kao deklariranje obične varijable koja pohranjuje jednu vrijednost, a postoje dva načina za deklariranje niza:

data_type array_name; // ili data_type array_name;

Na primjer, definirajmo niz brojeva:

int brojevi; int brojevi2;

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

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

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

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

int nums = novi int; // niz od 4 broja int nums2 = novo int; // niz od 5 brojeva

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

Međutim, također je moguće postaviti određene vrijednosti za elemente niza kada se kreira:

// ova dva načina su ekvivalentna int nums = new int ( 1, 2, 3, 5 ); int nums2 = (1, 2, 3, 5);

Važno je napomenuti da u ovom slučaju veličina niza nije navedena u uglatim zagradama, jer se izračunava brojem elemenata u vitičastim zagradama.

Nakon što stvorimo polje, možemo se pozvati na bilo koji njegov element pomoću indeksa koji se prosljeđuje u uglatim zagradama nakon naziva varijable polja:

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

Indeksiranje elementa niza počinje od 0, tako da u ovom slučaju, za referencu na četvrti element u nizu, moramo koristiti izraz nums.

A budući da je naš niz definiran samo za 4 elementa, ne možemo se pozvati, na primjer, na šesti element: nums = 5; . Ako to pokušamo učiniti, dobit ćemo pogrešku.

Duljina polja

Najvažnije svojstvo koje imaju nizovi je svojstvo length, koje vraća duljinu niza, odnosno broj njegovih elemenata:

int brojevi = (1, 2, 3, 4, 5); int duljina = nums duljina; // pet

Nije neuobičajeno da zadnji indeks bude nepoznat, a da bismo dobili posljednji element niza možemo koristiti ovo svojstvo:

int zadnji = brojevi;

Višedimenzionalni nizovi

Ranije smo razmatrali jednodimenzionalne nizove, koji se mogu predstaviti kao lanac ili niz vrijednosti iste vrste. Ali osim jednodimenzionalnih nizova, postoje i višedimenzionalni. Najpoznatiji višedimenzionalni niz je tablica koja predstavlja dvodimenzionalni niz:

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

Vizualno se oba niza mogu prikazati na sljedeći način:

Jednodimenzionalni niz nums1
Dvodimenzionalni niz nums2

Budući da je polje nums2 dvodimenzionalno, to je jednostavna tablica. Može se kreirati i ovako: int nums2 = new int; . Broj uglatih zagrada označava veličinu niza. A brojevi u zagradi - broj redaka i stupaca. Također, koristeći indekse, možemo koristiti elemente niza u programu:

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

Deklaracija trodimenzionalnog niza može izgledati ovako:

int nums3 = novo int;

nazubljeni niz

Višedimenzionalni nizovi također se mogu predstaviti kao "nazubljeni nizovi". U gornjem primjeru, 2D niz je imao 3 retka i 3 stupca, tako da smo završili s ravnom tablicom. Ali svakom elementu u dvodimenzionalnom nizu možemo dodijeliti zaseban niz s različitim brojem elemenata:

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

za svakoga

Posebna verzija for petlje dizajnirana je za ponavljanje preko elemenata u skupovima elemenata, kao što su nizovi i zbirke. Slično je foreach petlji koja se nalazi u drugim programskim jezicima. Službena izjava:

Za (tip podataka variable_name: kontejner)( // akcije)

Na primjer:

int polje = novo int (1, 2, 3, 4, 5); za (int i: polje)( System.out.println(i); )

Spremnik je u ovom slučaju niz podataka tipa int. Zatim se varijabla deklarira s tipom int

Isto se može učiniti s uobičajenom verzijom za:

int polje = novo 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 od for (int i: array) . Konkretno, u ovoj verziji možemo promijeniti elemente:

int polje = novo int (1, 2, 3, 4, 5); za (int i=0; i

Iteracija preko višedimenzionalnih nizova u petlji

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 stvara petlja za iteraciju preko redaka, a zatim se unutar prve petlje stvara unutarnja petlja za iteraciju po stupcima određenog retka. Slično, možete iterirati preko trodimenzionalnih nizova i skupova s ​​velikim brojem dimenzija.

Najpopularniji povezani članci