Kako postaviti pametne telefone i računala. Informativni portal

Višedimenzionalni niz android. Nizovi


Studiranje za "Game Developer" + zaposlenje

Java nizovi

Niz je struktura podataka koja pohranjuje vrijednosti istog tipa. Jednom elementu niza pristupa se pomoću cjelobrojnog indeksa. Na primjer, ako je a niz cijelih brojeva, tada je vrijednost izraza a [i] jednaka i-tom cijelom broju u nizu.

Niz se deklarira na sljedeći način: prvo se naznačuje tip niza, odnosno tip elemenata koji se nalaze u nizu, nakon čega slijedi par praznih uglatih zagrada, a zatim naziv varijable. Na primjer, evo kako se deklarira niz cijelih brojeva:
int a;

Međutim, ovaj operator samo deklarira varijablu a, bez inicijalizacije realnim nizom. Da biste stvorili niz, morate koristiti operator new.

Ovaj operator stvara niz od 100 cijelih brojeva. Elementi ovog niza su numerirani od 0 do 99 (ne od 1 do 100). Nakon kreiranja, niz se može popuniti, na primjer, pomoću petlje.

int a = novi int;
za (int i = 0; i< 100; i++)
a [i] = i; // Ispunjava niz brojevima od 0 do 99.

Ako pokušate pristupiti elementu a (ili bilo kojem drugom elementu čiji je indeks izvan raspona od 0 do 99) stvaranjem niza sa 100 elemenata, program će se prekinuti jer se javlja iznimka vezana uz to što je indeks polja izvan raspona. rasponu.
Za prebrojavanje broja elemenata u nizu koristite metodu MassName.
wa.duljina.

Na primjer,

za (int i = 0; i< a. length; i++ System.out.println (a[i]);

Nakon što je niz stvoren, nije ga moguće promijeniti veličinu (iako, naravno, možete promijeniti njegove pojedinačne elemente). Ako trebate često mijenjati veličinu niza tijekom izvršavanja programa, bolje je koristiti drugu strukturu podataka koja se zove popis nizova.

Niz se može deklarirati na dva načina:

int a;
ili
int a;

Većina Java programera preferira prvi stil, jer jasnije odvaja tip polja int (cjelobrojni niz) od naziva varijable.

Inicijalizatori niza i neimenovani nizovi

Jezik Java ima mogućnost za stvaranje niza i njegovo inicijaliziranje u isto vrijeme. Evo primjera takve sintaktičke konstrukcije:

int smallPrimes = (2, 3, 5, 7, 11, 13);

Imajte na umu da u ovom slučaju ne morate koristiti novi operator. Osim toga, moguće je čak inicijalizirati neimenovani niz:

novi int (16, 19, 23, 29, 31, 37)

Ovaj izraz dodjeljuje memoriju za novi niz i ispunjava ga brojevima u vitičastim zagradama. U tom slučaju se broji njihov broj i, sukladno tome, određuje se veličina niza. Ova sintaksa je korisna za ponovnu inicijalizaciju niza bez stvaranja nove varijable. Na primjer, izraz

smallPrimes = novi int (17, 19, 23, 29, 31, 37);
je stenografski izraz
int anoniman = (17, 19, 23, 29, 31, 37);
smailPrimes = anoniman;

Možete stvoriti niz veličine nula. Takav niz može biti koristan pri pisanju metode koja izračunava niz za koji se ispostavi da je prazan. Niz nulte duljine deklarira se kako slijedi:

nova vrsta predmeta

Imajte na umu da takav niz nije ekvivalentan null objektu.

Kopiranje nizova

Jedan niz se može kopirati u drugi, ali će se obje varijable odnositi na isti niz.

int luckyNumbers = smailPrimes;
luckyNuimbers = 12; // Element smailPrimes sada je također 12.

Rezultat je prikazan na sl. 3.14. Ako trebate kopirati sve elemente jednog niza u drugi, upotrijebite metodu arraycopy iz sustava. Njegov poziv izgleda ovako:

System.arraycopy (od, fromlndex, do, tolndex, count);

Niz to mora biti dovoljno velik da sadrži sve kopirane elemente.

Riža. 3.14. Kopiranje niza

Na primjer, dolje prikazani operatori, čiji su rezultati prikazani na Sl. 3.15, kreirajte dva niza i zatim kopirajte posljednja četiri elementa prvog niza u drugi. Kopiranje počinje na drugoj poziciji u izvornom nizu, a kopirane stavke se postavljaju u ciljni niz počevši od treće pozicije.

int smailPrimes = (2, 3, 5, 7, 11, 13);
int luckyNumbers = (1001, 1002, 1003, 1004, 1005, 1006, 1007);
System.aggausor (smailPrimes, 2, luckyNumbers, 3, 4);
za (int i = 0; i< luckyNumbers.length; i++)
System.println (i +. ":" + LuckyNumbersfi]);

Izvršenje ovih izjava dovodi do sljedećeg rezultata.

0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13

Riža. 3.15. Kopiranje elemenata niza

Niz u Javi značajno se razlikuje od niza u C ++. Međutim, to je praktički isto što i pokazivač na dinamički niz. To znači da operater

int a = novi int; // Java
ekvivalentno operatoru
i n t * = novi i n t [1 0 0]; // C ++,
ali ne
int a; // C ++

U Javi, naredba no prema zadanim postavkama provjerava raspon promjena indeksa. Osim toga, jezik Java nema aritmetiku pokazivača — ne možete povećati pokazivač da biste pristupili sljedećem elementu u nizu.

Niz (engleski niz) to 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 njegov položaj u nizu je dan s indeks... Na primjer, moramo pohraniti 50 različitih imena, morate priznati da je nezgodno stvarati zasebnu varijablu za svako ime, pa ćemo koristiti niz. Numeracija elemenata niza počinje od 0, a duljina niza se postavlja u trenutku stvaranja i fiksna je.

Radi jasnoće, slika koju sam snimio Vodič za Java.

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

Deklaracija niza u Javi

Kada kreirate niz u Javi, prvi korak je deklarirati ga. To se može učiniti na sljedeći način:

Int myFirstArray;

Također možete deklarirati niz ovako:

Int mojSecondArray;

Međutim, konvencija Java koda to ne pozdravlja, budući da zagrade označavaju da imamo posla s nizom i logičnije je kada su pored oznake tipa.

Na temelju ovog primjera deklarirali smo 2 niza s imenima myFirstArray i mySecondArray... Oba niza će sadržavati elemente tipa int.

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

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

Tip niza je specificiran kao tip, gdje je tip tip podataka elemenata koje sadrži. Zagrade su posebna oznaka da su varijable sadržane u nizu. Naziv niza može biti bilo koji, međutim, mora se podudarati.

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

Kada je niz deklariran u Javi, njegova veličina nije navedena i memorija nije rezervirana za njega. Stvara samo referencu na niz.

Rezervacija memorije za niz i njegova inicijalizacija.

Int myFirstArray; myFirstArray = novi int;

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

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

Int myArray = novi int;

Prilikom izrade niza pomoću ključne riječi novi, svi elementi niza se automatski inicijaliziraju na nulte vrijednosti. Da biste dodijelili njihove početne vrijednosti elementima niza, potrebno ga je držati inicijalizacija... Inicijalizacija se može provesti kao element po element

Moj prvi niz = 10; // inicijalizira prvi element myFirstArray = 20; // inicijaliziraj drugi element myFirstArray = 30; // itd.

i u petlji, koristeći indeks, prolazi kroz sve elemente niza i dodjeljuje im vrijednosti.

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

Kao što možete vidjeti iz prethodnih primjera, da biste se referirali na element niza, morate navesti njegovo ime, a zatim u uglastim zagradama - indeks elementa. Element polja s određenim indeksom ponaša se isto kao varijabla.

Razmotrimo stvaranje i inicijalizaciju niza u sljedećem primjeru. U njemu stvaramo niz koji sadrži brojeve 0-9 i ispisujemo vrijednosti na konzolu.

// stvoriti i inicijalizirati niz int numberArray = new int; za (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 stvaranje i inicijalizaciju niza. Ne sadrži ni riječ novi, a početne vrijednosti niza navedene su u zagradama.

Int myColor = (255, 255, 0);

Ovdje je duljina niza određena brojem vrijednosti između zagrada i odvojenih zarezima. Ovo je prikladnije za stvaranje malih nizova.

Određivanje veličine niza

Veličina niza nije uvijek očita, pa da biste ga pronašli, trebate koristiti svojstvo dužine koje vraća duljinu niza.

MyColor.length;

Ovaj kod će nam pomoći da saznamo da je duljina polja myColor 3.

Primjer: Za 4 broja morate pronaći minimum

Int brojevi = (-9, 6, 0, -59); int min = brojevi; za (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. Za niz dimenzija N pronađite najmanji element niza i ispišite ga na konzolu (ako postoji nekoliko najmanjih elemenata, ispišite ih sve).
  3. U nizu iz zadatka 2. pronađite najveći element.
  4. Zamijenite najveći i najmanji element niza. Primjer: zadan je niz (4, -5, 0, 6, 8). Nakon zamjene izgledat će kao (4, 8, 0, 6, -5).
  5. Pronađite aritmetičku sredinu svih elemenata u nizu.

Niz je struktura podataka koja je dizajnirana za pohranu podataka iste vrste. Nizovi rade drugačije u Javi nego u C / C ++. Osobitosti:

  • Budući da su nizovi objekti, možemo pronaći njihovu duljinu. Ovo se razlikuje od C / C ++, gdje nalazimo duljinu pomoću sizeof.
  • Varijabla niza također može biti.
  • Varijable su poredane i imaju indeks koji počinje od 0.
  • Također se može koristiti kao statičko polje, lokalna varijabla ili parametar metode.
  • Veličina polja mora biti int, ne duga ili kratka.
  • Izravna nadklasa tipa polja je Object.
  • Svaki tip polja implementira sučelja Cloneable i java.io.Serializable.

Inicijalizacija i pristup nizu

Jednodimenzionalni nizovi: Obrazac opće deklaracije

Upišite naziv-varijante; ili upišite naziv-vare;

Deklaracija se sastoji od dvije komponente: tipa i imena. type deklarira tip elementa niza. Vrsta stavke određuje tip podataka svake stavke.

Osim tipa int, možemo kreirati i niz drugih tipova podataka kao što su char, float, double ili korisnički definirani tip podataka (objekti klase).Tako, tip elementa određuje koji će tip podataka biti pohranjen u nizu. Na primjer:

// obje su valjane deklaracije int intArray; ili int intArray; bajt byteArray; kratke kratke hlačeArray; boolean booleanArray; long longArray; float floatArray; double doubleArray; char charArray; // niz referenci na objekte // klase MyClass (klasa koju je stvorio // korisnik) MyClass myClassArray; Objekt ao, // niz zbirke objekata ca; // niz zbirke // nepoznatog tipa

Iako gornja prva deklaracija navodi da je intArray varijabla polja, niz zapravo ne postoji. To samo govori prevoditelju da je ova varijabla tipa cijeli broj.

Da biste povezali niz int sa stvarnim fizičkim nizom cijelih brojeva, morate ga označiti s new i dodijeliti ga int.

Kako napraviti niz u Javi

Kada deklarirate niz, kreira se samo referenca na niz. Da biste zapravo stvorili ili osigurali memoriju za niz, morate stvoriti niz na sljedeći način: opći oblik new primjenjuje se na jednodimenzionalni i izgleda ovako:
naziv-varijante = novi tip;

Ovdje type označava tip podataka, veličina je broj elemenata u nizu, a naziv-vare je naziv varijable polja.

Int intArray; // deklaracija intArray = novi int; // dodjela memorije

Int intArray = novi int; // udruga

Važno je znati da se elementi niza dodijeljeni novom funkcijom automatski inicijaliziraju na nulu (za numeričke tipove), false (za booleove tipove) ili nulu (za referentne tipove).
Dobijanje niza je proces u dva koraka. Prvo morate deklarirati varijablu željenog tipa. Drugo, trebate dodijeliti memoriju koja će sadržavati niz koristeći new i dodijeliti ga varijabli. Dakle, u Javi se svi nizovi dinamički dodjeljuju.

Literali niza

U situaciji kada su veličina niza i varijable već poznate, mogu se koristiti literali.

Int intArray = novi int (1,2,3,4,5,6,7,8,9,10); // Deklariranje literala niza

  • Duljina ovog niza određuje duljinu generiranog niza.
  • Nema potrebe za pisanjem int u najnovijim verzijama Jave

Pristup elementima Java polja pomoću for petlje

Svakom elementu niza pristupa se preko njegovog indeksa. Indeks počinje s 0 i završava na (ukupna veličina) -1. Svim elementima se može pristupiti pomoću for petlje.

Za (int i = 0; i< arr.length; i++) System.out.println("Element at index " + i + " : "+ arr[i]);

// Primjer za ilustraciju stvaranja niza
// cijeli brojevi, stavlja neke vrijednosti u niz,
// i ispisuje svaku vrijednost.

razred GFG
{

{

int arr;

// dodjeljivanje memorije za 5 cijelih brojeva.
arr = novi int;


arr = 10;


arr = 20;

// tako dalje...
arr = 30;
arr = 40;
arr = 50;

// pristup elementima navedenog niza
za (int i = 0; i< arr.length; i++)
System.out.println ("Element u indeksu" + i +
":" + arr [i]);
}
}
Kao rezultat, dobivamo:

Element na indeksu 0: 10 Element na indeksu 1: 20 Element na indeksu 2: 30 Element na indeksu 3: 40 Element na indeksu 4: 50

Nizovi objekata

Niz objekata kreira se na isti način kao i stavke podataka, kako slijedi:

Student arr = novi student;

StudentArray sadrži sedam memorijskih elemenata svaki iz učenikove klase, u koje se mogu pohraniti adrese sedam Student objekata. Studentski objekti moraju se kreirati pomoću konstruktora klase učenika i njihove reference moraju biti dodijeljene elementima niza na sljedeći način:

Student arr = novi student;

// Java program za ilustraciju stvaranja niza
// objekti

razreda Učenik
{
javni int roll_no;
javni naziv stringa;
Student (int roll_no, naziv niza)
{
this.roll_no = roll_no;
this.name = ime;
}
}

// Elementi niza su objekti klase Student.
javni razred GFG
{
javni statički void main (args niza)
{
// deklarira niz cijelih brojeva.
Student arr;

// dodjeljivanje memorije za 5 objekata tipa Student.
arr = novi učenik;

// inicijalizira prve elemente niza
arr = novi učenik (1, "aman");

// inicijalizira druge elemente niza
arr = novi učenik (2, "vaibhav");

// tako dalje...
arr = novi učenik (3, "shikar");
arr = novi učenik (4, "dharmesh");
arr = novi učenik (5, "mohit");

// pristup elementima navedenog niza
za (int i = 0; i< arr.length; i++)
System.out.println ("Element na" + i + ":" +
arr [i] .roll_no + "" + arr [i] .name);
}
}

dobivamo:

Element u 0: 1 aman Element u 1: 2 vaibhav Element u 2: 3 shikar Element u 3: 4 dharmesh Element u 4: 5 mohit

Što se događa ako pokušamo pristupiti elementu izvan niza?
Prevoditelj izbacuje ArrayIndexOutOfBoundsException, što ukazuje da je nizu pristupljeno s nevažećeg indeksa. Indeks je ili negativan ili veći ili jednak veličini niza.

Višedimenzionalni

Višedimenzionalni nizovi su nizovi nizova, čiji svaki element sadrži referencu na drugi niz. Stvoreno dodavanjem jednog skupa uglatih zagrada () za svaku dimenziju. Razmotrimo primjer:

Int intArray = novi int; // 2D niz ili matrica int intArray = new int; // 3D niz

klasa višedimenzionalni
{
javni statički void main (args niza)
{
// deklariranje i inicijaliziranje 2D polja
int arr = ((2,7,9), (3,6,1), (7,4,2));

// ispis 2D niza
za (int i = 0; i< 3 ; i++)
{
za (int j = 0; j< 3 ; j++)
System.out.print (arr [i] [j] + "");

System.out.println ();
}
}
}

Izlaz: 2 7 9 3 6 1 7 4 2


Prosljeđivanje nizova metodi

Kao i varijable, možemo proslijediti nizove metodama.

// Java program za demonstraciju // prosljeđivanje niza u klasu metode Test (// metoda vozača public static void main (String args) (int arr = (3, 1, 2, 5, 4); // prosljeđivanje polja metodi m1 zbroj (arr);) javna statična praznina zbroj (int arr) (// dobivanje zbroja vrijednosti niza int sum = 0; for (int i = 0; i< arr.length; i++) sum+=arr[i]; System.out.println("sum of array values: " + sum); } }

Na izlazu dobivamo:

zbroj vrijednosti niza: 15

Vraćanje nizova iz metoda

Kao i obično, metoda također može vratiti niz. Na primjer, program u nastavku vraća niz iz metode m1.

// Java program za demonstraciju // povratak niza iz klase metode Test (// metoda drajvera public static void main (String args) (int arr = m1 (); for (int i = 0; i< arr.length; i++) System.out.print(arr[i]+" "); } public static int m1() { // returning array return new int{1,2,3}; } }

Klasni objekti

Svaki niz ima pridruženi objekt klase koji se dijeli sa svim ostalim nizovima s istim tipom komponente.

// Java program za demonstraciju // Class Objects for Arrays class Test (javni statički void main (String args) (int intArray = new int; byte byteArray = novi bajt; kratki shortsArray = novi kratki; // niz nizova String strArray = novi string; System.out.println (intArray.getClass ()); System.out.println (intArray.getClass (). getSuperclass ()); System.out.println (byteArray.getClass ()); System.out. println (shortsArray.getClass ()); System.out.println (strArray.getClass ());))

klasa + ""); )))

Klon višedimenzionalnog niza (kao Object) je kopija, što znači da stvara samo jedan novi niz sa svakim elementom i referencom na izvorni niz elemenata, ali ugniježđeni nizovi su uobičajeni.

// Java program za demonstraciju // kloniranje višedimenzionalnih nizova klase Test (javni statički void main (String args) (int intArray = ((1,2,3), (4,5)); int cloneArray = intArray. clone (); // ispisat će netočno System.out.println (intArray == cloneArray); // ispisat će true kada se stvori plitka kopija // tj. pod-nizovi se dijele System.out.println (intArray == cloneArray) ; System.out.println (intArray == cloneArray);))

Niz je struktura podataka koja pohranjuje vrijednosti istog tipa. Jednom elementu niza pristupa se pomoću cjelobrojnog indeksa. Na primjer, ako je a niz cijelih brojeva, tada je vrijednost izraza a [i] jednaka i-tom cijelom broju u nizu. Niz se deklarira na sljedeći način: prvo se naznačuje tip niza, odnosno tip elemenata koji se nalaze u nizu, nakon čega slijedi par praznih uglatih zagrada, a zatim naziv varijable. Na primjer, evo kako se deklarira niz cijelih brojeva: int a; Međutim, ovaj operator samo deklarira varijablu a, bez inicijalizacije realnim nizom. Da biste stvorili niz, morate koristiti operator new. int a = novi int [100]; Ovaj operator stvara niz od 100 cijelih brojeva. Elementi ovog niza su numerirani od 0 do 99 (ne od 1 do 100). Nakon kreiranja, niz se može popuniti, na primjer, pomoću petlje. int a = novi int [100]; za (int i = 0; i< 100 ; i++ ) a[ i] = i; // Ispunjava niz brojevima od 0 do 99 Ako pokušate pristupiti elementu a (ili bilo kojem drugom elementu čiji je indeks izvan raspona od 0 do 99) stvaranjem niza sa 100 elemenata, program će se prekinuti jer se javlja iznimka vezana uz to što je indeks polja izvan raspona. rasponu. Za prebrojavanje broja elemenata u nizu koristite metodu Array name.length. Na primjer, za (int i = 0; i< a. length; i++ , System. out. println (a[ i] ) ) ; После создания массива изменить его размер невозможно (хотя можно, конечно, изменять отдельные его элементы). Если в ходе выполнения программы необходимо часто изменять размер массива, лучше использовать другую структуру данных, называемую списком массивов (array list). Массив можно объявить двумя способами: int a; или int a ; Большинство программистов на языке Java предпочитают первый стиль, поскольку в нем четче отделяется тип массива int (целочисленный массив) от имени переменной.

Inicijalizatori niza i neimenovani nizovi

Jezik Java ima mogućnost za stvaranje niza i njegovo inicijaliziranje u isto vrijeme. Evo primjera takve sintakse: int smallPrimes = (2, 3, 5, 7, 11, 13); Imajte na umu da u ovom slučaju ne morate koristiti novi operator. Osim toga, možete čak inicijalizirati neimenovani niz: new int (16, 19, 23, 29, 31, 37) Ovaj izraz dodjeljuje memoriju za novi niz i ispunjava ga brojevima u vitičastim zagradama. U tom slučaju se broji njihov broj i, sukladno tome, određuje se veličina niza. Ova sintaksa je korisna za ponovnu inicijalizaciju niza bez stvaranja nove varijable. Na primjer, izraz smallPrimes = new int (17, 19, 23, 29, 31, 37); je skraćeni zapis izraza int anonymous = (17, 19, 23, 29, 31, 37); smallPrimes = anonimni; Možete stvoriti niz veličine nula. Takav niz može biti koristan pri pisanju metode koja izračunava niz za koji se ispostavi da je prazan. Niz nulte duljine deklarira se kako slijedi: novi tip elementa Imajte na umu da takav niz nije ekvivalentan nultom objektu.

Kopiranje nizova

Jedan niz se može kopirati u drugi, ali će se obje varijable odnositi na isti niz. int luckyNumbers = mala početna mjesta; luckyNumbers [5] = 12; // Sada je element smallPrimes također 12 Rezultat je prikazan na sl. 3.1. Ako trebate kopirati sve elemente jednog niza u drugi, upotrijebite metodu arraycopy iz sustava. Njegov poziv izgleda ovako: System. arraycopy (od, fromlndex, to, tolndex, count); Niz to mora biti dovoljno velik da sadrži sve kopirane elemente. Slika 3.1. Kopiranje niza Na primjer, dolje prikazani operatori, čiji su rezultati prikazani na Sl. 3.2, kreirajte dva niza i zatim kopirajte posljednja četiri elementa prvog niza u drugi. Kopiranje počinje na drugoj poziciji u izvornom nizu, a kopirane stavke se postavljaju u ciljni niz počevši od treće pozicije. int smallPrimes = (2, 3, 5, 7, 11, 13); int luckyNumbers = (1001, 1002, 1003, 1004, 1005, 1006, 1007); Sustav. arrausoru (smallPrimes, 2, luckyNumbers, 3, 4); za (int i = 0; i< luckyNumbers. length; i++ ) System. out. println (i + ": " + luckyNumbers[ i] ) ; Выполнение этих операторов приводит к следующему результату. 0 : 1001 1 : 1002 2 : 1003 3 : 5 4 : 7 5 : 11 6 : 13 Riža. 3.2. Kopiranje elemenata niza Niz u Javi značajno se razlikuje od niza u C ++. Međutim, to je praktički isto što i pokazivač na dinamički niz. To znači da je operator int a = new int [100]; // Java je ekvivalentna operatoru int * = new int [100]; // C ++, a ne int a [100]; // C ++ U Javi, default naredba provjerava raspon indeksa. Osim toga, jezik Java nema aritmetiku pokazivača — ne možete povećati pokazivač da biste pristupili sljedećem elementu u nizu. Veza na prvu Niz je struktura podataka koja pohranjuje vrijednosti istog tipa. Jednom elementu niza pristupa se pomoću cjelobrojnog indeksa. Na primjer, ako je a niz cijelih brojeva, tada je vrijednost izraza a [i] jednaka i-tom cijelom broju u nizu. Niz se deklarira na sljedeći način: prvo se naznačuje tip niza, odnosno tip elemenata koji se nalaze u nizu, nakon čega slijedi par praznih uglatih zagrada, a zatim naziv varijable. Na primjer, evo kako se deklarira niz cijelih brojeva: int a; Međutim, ovaj operator samo deklarira varijablu a, bez inicijalizacije realnim nizom. Da biste stvorili niz, morate koristiti operator new. int a = novi int [100]; Ovaj operator stvara niz od 100 cijelih brojeva. Elementi ovog niza su numerirani od 0 do 99 (ne od 1 do 100). Nakon kreiranja, niz se može popuniti, na primjer, pomoću petlje. int a = novi int [100]; za (int i = 0; i< 100 ; i++ ) a[ i] = i; // Ispunjava niz brojevima od 0 do 99 Ako pokušate pristupiti elementu a (ili bilo kojem drugom elementu čiji je indeks izvan raspona od 0 do 99) stvaranjem niza sa 100 elemenata, program će se prekinuti jer se javlja iznimka vezana uz to što je indeks polja izvan raspona. rasponu. Za prebrojavanje broja elemenata u nizu koristite metodu Array name.length. Na primjer, za (int i = 0; i< a. length; i++ , System. out. println (a[ i] ) ) ; После создания массива изменить его размер невозможно (хотя можно, конечно, изменять отдельные его элементы). Если в ходе выполнения программы необходимо часто изменять размер массива, лучше использовать другую структуру данных, называемую списком массивов (array list). Массив можно объявить двумя способами: int a; или int a ; Большинство программистов на языке Java предпочитают первый стиль, поскольку в нем четче отделяется тип массива int (целочисленный массив) от имени переменной.

Inicijalizatori niza i neimenovani nizovi

Jezik Java ima mogućnost za stvaranje niza i njegovo inicijaliziranje u isto vrijeme. Evo primjera takve sintakse: int smallPrimes = (2, 3, 5, 7, 11, 13); Imajte na umu da u ovom slučaju ne morate koristiti novi operator. Osim toga, možete čak inicijalizirati neimenovani niz: new int (16, 19, 23, 29, 31, 37) Ovaj izraz dodjeljuje memoriju za novi niz i ispunjava ga brojevima u vitičastim zagradama. U tom slučaju se broji njihov broj i, sukladno tome, određuje se veličina niza. Ova sintaksa je korisna za ponovnu inicijalizaciju niza bez stvaranja nove varijable. Na primjer, izraz smallPrimes = new int (17, 19, 23, 29, 31, 37); je skraćeni zapis izraza int anonymous = (17, 19, 23, 29, 31, 37); smallPrimes = anonimni; Možete stvoriti niz veličine nula. Takav niz može biti koristan pri pisanju metode koja izračunava niz za koji se ispostavi da je prazan. Niz nulte duljine deklarira se kako slijedi: novi tip elementa Imajte na umu da takav niz nije ekvivalentan nultom objektu.

Kopiranje nizova

Jedan niz se može kopirati u drugi, ali će se obje varijable odnositi na isti niz. int luckyNumbers = mala početna mjesta; luckyNumbers [5] = 12; // Sada je element smallPrimes također 12 Rezultat je prikazan na sl. 3.1. Ako trebate kopirati sve elemente jednog niza u drugi, upotrijebite metodu arraycopy iz sustava. Njegov poziv izgleda ovako: System. arraycopy (od, fromlndex, to, tolndex, count); Niz to mora biti dovoljno velik da sadrži sve kopirane elemente. Slika 3.1. Kopiranje niza Na primjer, dolje prikazani operatori, čiji su rezultati prikazani na Sl. 3.2, kreirajte dva niza i zatim kopirajte posljednja četiri elementa prvog niza u drugi. Kopiranje počinje na drugoj poziciji u izvornom nizu, a kopirane stavke se postavljaju u ciljni niz počevši od treće pozicije. int smallPrimes = (2, 3, 5, 7, 11, 13); int luckyNumbers = (1001, 1002, 1003, 1004, 1005, 1006, 1007); Sustav. arrausoru (smallPrimes, 2, luckyNumbers, 3, 4); za (int i = 0; i< luckyNumbers. length; i++ ) System. out. println (i + ": " + luckyNumbers[ i] ) ; Выполнение этих операторов приводит к следующему результату. 0 : 1001 1 : 1002 2 : 1003 3 : 5 4 : 7 5 : 11 6 : 13 Riža. 3.2. Kopiranje elemenata niza Niz u Javi značajno se razlikuje od niza u C ++. Međutim, to je praktički isto što i pokazivač na dinamički niz. To znači da je operator int a = new int [100]; // Java je ekvivalentna operatoru int * = new int [100]; // C ++, a ne int a [100]; // C ++ U Javi, default naredba provjerava raspon indeksa. Osim toga, jezik Java nema aritmetiku pokazivača — ne možete povećati pokazivač da biste pristupili sljedećem elementu u nizu. Veza na prvu

Vrhunski povezani članci