multidimensional arrays java 2d
Ovaj vodič o višedimenzionalnim nizovima u Javi raspravlja o tome kako inicijalizirati, pristupiti i ispisati 2d i 3d nizove u Javi s primjerima sintakse i koda:
Do sada smo razgovarali o glavnim konceptima jednodimenzionalnih nizova. Ti nizovi pohranjuju jedan slijed ili popis elemenata istog tipa podataka.
Java također podržava nizove s više od jedne dimenzije i oni se nazivaju višedimenzionalni nizovi.
=> Ovdje provjerite SVE Java tutorijale.
Java višedimenzionalni nizovi raspoređeni su kao niz nizova, tj. Svaki element višedimenzionalnog niza je drugi niz. Prikaz elemenata je u redovima i stupcima. Dakle, ukupni broj elemenata u višedimenzionalnom nizu možete dobiti množenjem veličine retka s veličinom stupca.
Dakle, ako imate dvodimenzionalni niz 3 × 4, tada je ukupan broj elemenata u ovom nizu = 3 × 4 = 12.
U ovom uputstvu istražit ćemo višedimenzionalne nizove na Javi. Prvo razgovarajmo o dvodimenzionalnim nizovima prije nego što prijeđemo na trodimenzionalne nizove.
Što ćete naučiti:
- Dvodimenzionalni niz
- Java višedimenzionalni nizovi
- Trodimenzionalni nizovi u Javi
- Često postavljana pitanja
- Zaključak
Dvodimenzionalni niz
Najjednostavniji od višedimenzionalnih nizova je dvodimenzionalni niz. Jednostavna definicija 2D nizova je: 2D niz je niz jednodimenzionalnih nizova.
U Javi je dvodimenzionalni niz pohranjen u obliku redaka i stupaca i predstavljen je u obliku matrice.
Opća deklaracija dvodimenzionalnog niza je,
data_type () () array_name;
Ovdje,
data_type = vrsta podataka elemenata koji će biti pohranjeni u nizu.
array_name = ime dvodimenzionalnog niza.
Možete stvoriti 2D niz koristeći novo kako slijedi:
data_type () () array_name = new data_type(row_size)(column_size);
Ovdje,
row_size = broj redaka koje će niz sadržavati.
column_size = broj stupaca koje će niz sadržavati.
Dakle, ako imate niz 3 × 3, to znači da će imati 3 retka i 3 stupca.
Izgled ovog polja bit će prikazan dolje.
Redovi / stupci | Stupac1 | Stupac2 | Stupac3 |
---|---|---|---|
Red1 | (0,0) | (0,1) | (0,2) |
Red 2 | (1,0) | (1,1) | (1,2) |
Red 3 | (2,0) | (2.1) | (2,2) |
Kao što je prikazano gore, svako sjecište retka i stupca pohranjuje element 2D niza. Dakle, ako želite pristupiti prvom elementu u 2d polju, on je dan s (0, 0).
Bilješka kako je veličina polja 3 × 3, u ovom polju možete imati 9 elemenata.
Cjelobrojni niz s nazivom 'myarray' od 3 retka i 2 stupca može se deklarirati kao u nastavku.
int ()() myarray = new int(3)(2);
Jednom kada je niz deklariran i stvoren, vrijeme je da ga inicijalizirate vrijednostima.
Inicijalizirajte 2d niz
Postoje različiti načini inicijalizacije 2d niza vrijednostima. Prva metoda je tradicionalna metoda dodjeljivanja vrijednosti svakom elementu.
Opća sintaksa za inicijalizaciju je:
array_name(row_index)(column_index) = value;
Primjer:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Gore navedeni izrazi inicijaliziraju sve elemente danog 2d polja.
Stavimo ga u program i provjerimo izlaz.
public class Main { public static void main(String() args) { int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; System.out.println('Array elements are:'); System.out.println(myarray(0)(0) + ' ' +myarray(0)(1)); System.out.println(myarray(1)(0) + ' ' +myarray(1)(1)); } }
Izlaz:
Ova metoda može biti korisna kada su dimenzije manje. Kako dimenzija niza raste, teško je koristiti ovu metodu pojedinačne inicijalizacije elemenata.
Sljedeća metoda inicijalizacije 2d niza u Javi je inicijaliziranje niza samo u vrijeme deklaracije.
Općenita sintaksa za ovu metodu inicijalizacije je dana u nastavku:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Na primjer, ako imate niz 2 × 3 tipa int, tada možete ga inicijalizirati deklaracijom kao:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Sljedeći primjer prikazuje 2d deklaraciju niza s inicijalizacijom.
public class Main { public static void main(String() args) { //2-d array initialised with values int()() intArray = { { 1, 2 }, { 3, 4 },{5,6}}; //print the array System.out.println('Initialized Two dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { System.out.print(intArray (i)(j) + ' '); } System.out.println(); } } }
Izlaz:
U gornjem programu, niz se inicijalizira u vrijeme same deklaracije, a zatim se prikazuju vrijednosti.
Također možete inicijalizirati ili dodijeliti vrijednosti 2d nizu pomoću petlje kao što je prikazano dolje.
int()() intArray = new int(3)(3); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; } }
Sljedeći program implementira gornji kod.
public class Main { public static void main(String() args) { //declare an array of int int()() intArray = new int(3)(3); System.out.println('Array elements are:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i+1; //assign values to each array element System.out.print(intArray(i)(j) + ' '); //print each element } System.out.println(); } } }
Izlaz:
Svakom elementu u gore navedenom 2d polju dodjeljuje se vrijednost 'i + 1'. To čini da svaki element u nizu polja sadrži istu vrijednost.
Pristup i ispis 2d niza
Već znate da prilikom inicijalizacije 2d niza možete inicijalizirati pojedinačne elemente niza u vrijednost. To se postiže korištenjem indeksa redaka i indeksa stupca niza za pristup određenom elementu.
Slično inicijalizaciji, također možete pristupiti vrijednosti pojedinog elementa i ispisati ga korisniku.
Opća sintaksa za pristup elementu niza je:
data_typeval = array_name(row_index)(column_index);
Gdje je array_name polje kojemu se pristupa elementu, a data_type je isti kao vrsta podataka polja.
Sljedeći program pokazuje kako se pristupa i ispisuje pojedini element.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = {{1,2},{4,8}}; //Access individual element of array intval = intArray(0)(1); //print the element System.out.println('Accessed array value = ' + val); System.out.println('Contents of Array:' ); //print individual elements of array System.out.println(intArray(0)(0) + ' ' + intArray(0)(1)); System.out.println(intArray(1)(0) + ' ' + intArray(1)(1)); } }
Izlaz:
Na ovaj način možete lako pristupiti i ispisati pojedine elemente niza pomoću indeksa redaka i stupaca zatvorenih u uglate zagrade (()).
Možete ispisati čitav niz odjednom u tabličnom formatu kao što je prikazano gore (koji se naziva i matrični oblik) pomoću for petlje. Budući da je ovo dvodimenzionalni niz, za to trebate imati dvije petlje. Jedna petlja za itiranje kroz redove, tj. Vanjska petlja i unutarnja petlja za prelazak stupaca.
zadani pristupnik nije dostupan Windows 10 fix
U bilo kojem trenutku (trenutna iteracija), određeni element u polju daje:
ime_niza (i) (j);
Gdje je 'i' trenutni redak, a 'j' trenutni stupac.
Sljedeći program prikazuje ispis 2d niza pomoću petlje 'for'.
public class Main { public static void main(String() args) { //two dimensional array definition int()() intArray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i <3; i++) { for (int j = 0; j < 3; j++) { intArray(i)(j) = i*j; //assign value to each array element System.out.print(intArray (i)(j) + ' '); } System.out.println(''); } } }
Izlaz:
U gornjem programu, 2d niz se inicijalizira, a zatim se elementi ispisuju pomoću dva for petlje. Vanjski se koristi za praćenje redaka, dok je unutarnji for petlja za stupce.
Duljina niza Java 2d
Dvodimenzionalni niz definiran je kao niz jednodimenzionalnog niza. Stoga, kada vam treba duljina 2d niza, ona nije tako izravna kao u jednodimenzionalnom nizu.
Svojstvo length za dvodimenzionalni niz vraća broj redaka u polju. Svaki je red jednodimenzionalni niz. Već znate da se dvodimenzionalni niz sastoji od redaka i stupaca. Veličina stupca može se razlikovati za svaki redak.
Stoga veličinu svakog retka možete dobiti prelaskom kroz broj redaka.
Sljedeći program daje duljinu niza (broj redaka) kao i veličinu svakog retka.
public class Main { public static void main(String() args) { //initialize 2-d array int()() myArray = { { 1, 2, 3 }, { 4, 5 } }; System.out.println('length of array:' + myArray.length); //number of rows for(int i=0;i Izlaz:

Dvodimenzionalni niz gore definiran ima dva reda. Svaki je red jednodimenzionalni niz. Prvi 1D niz ima 3 elementa (3 stupca), dok drugi red ima 2 elementa.
Sljedeći Java program prikazuje upotrebu svojstva length za ispis 2d niza.
public class Main { public static void main(String() args) { //two dimensional array definition int()() myarray = new int(3)(3); //printing the 2-d array System.out.println('The two-dimensional array:'); for (int i = 0; i Izlaz:

Kao što je već spomenuto, vanjska petlja predstavlja retke, a unutarnja for predstavlja stupce.
Bilješka: Završni uvjet u obje petlje koristi svojstvo length, prvo za iteraciju kroz retke, a zatim kroz stupce.
Java višedimenzionalni nizovi
Već smo vidjeli dvodimenzionalne nizove. Java podržava nizove s više od dvije dimenzije.
Opća sintaksa višedimenzionalnog niza je kako slijedi:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Ovdje,
d1, d2… dn = dimenzije višedimenzionalnog niza
(d1_size) (d2_size) ... (dn_size) = odgovarajuće veličine dimenzija
data_type = tip podataka elemenata niza
array_name = ime višedimenzionalnog niza
Kao primjer još jednog višedimenzionalnog niza koji nije 2d niz, razgovarajmo o detaljima trodimenzionalnih (3d) nizova.
Trodimenzionalni nizovi u Javi
Već smo razgovarali o tome da niz postaje sve složeniji kako se njihove dimenzije povećavaju. Trodimenzionalni nizovi su složeni za višedimenzionalne nizove. Trodimenzionalni se može definirati kao niz dvodimenzionalnih nizova.
Općenita definicija trodimenzionalnog niza dana je u nastavku:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Ovdje,
d1, d2, d3 = veličine dimenzija
data_type = vrsta podataka elemenata niza
array_name = ime 3d niza
Primjer definicije 3d niza je:
int () () () intArray = new int(2)(3)(4);
Gornja definicija 3d niza može se protumačiti kao da ima 2 tablice ili nize, 3 retka i 4 stupca koji broje do 2x3x4 = 24 elementa.
To znači da se u 3d nizu tri dimenzije tumače kao:
- Broj tablica / polja: Prva dimenzija označava koliko će tablica ili polja imati 3d niz.
- Broj redaka: Druga dimenzija označava ukupan broj redaka koje će niz imati.
- Broj stupaca: Treća dimenzija označava ukupni stupac u 3d polju.
Inicijalizirajte 3D niz
Pristupi koji se koriste za inicijalizaciju 3d niza jednaki su onima koji se koriste za inicijalizaciju dvodimenzionalnih nizova.
Možete inicijalizirati niz dodjeljivanjem vrijednosti pojedinim elementima niza ili inicijalizirati niz tijekom deklaracije.
Primjer u nastavku prikazuje inicijalizaciju 3d niza tijekom deklaracije.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { { { 1, 2, 3}, { 4, 5, 6 } , { 7, 8, 9 } } }; System.out.println ('3-d array is given below :'); //print the elements of array for (int i = 0; i <1; i++) for (int j = 0; j < 3; j++) for (int z = 0; z < 3; z++) System.out.println ('intArray (' + i + ')(' + j + ')(' + z + ') = ' + intArray (i)(j)(z)); } }
Izlaz:

Nakon inicijalizacije 3d niza tijekom deklaracije pristupili smo pojedinačnim elementima niza i ispisali ih.
Pristupa i ispisuje 3d niz
Opet, ispis i pristup elementima niza u trodimenzionalnom nizu sličan je onome u dvodimenzionalnim nizovima.
Program u nastavku koristi petlje za pristup elementima niza i ispis na konzolu.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() myArray = { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 1, 4, 9 }, { 16, 25, 36 } }, { { 1, 8, 27 }, { 64, 125, 216 } } }; System.out.println('3x2x3 array is given below:'); //print the 3-d array for (int i = 0; i <3; i++) { for (int j = 0; j < 2; j++) { for (int k = 0; k < 3; k++) { System.out.print(myArray(i)(j)(k) + ' '); } System.out.println(); } System.out.println(); } } }
Izlaz:

Gornji program prikazuje tablični prikaz trodimenzionalnog niza. Kao što je prikazano, to je niz 3x2x3, što znači da ima 3 tablice, 2 retka i 3 stupca, a time i 18 elemenata.
Već je spomenuto da veličina stupca može varirati u višedimenzionalnom nizu. Primjer u nastavku prikazuje trodimenzionalni niz s različitim veličinama stupaca.
Ovaj program također koristi poboljšanu petlju for za prolazak kroz niz i prikaz njegovih elemenata.
public class Main { public static void main(String() args) { //initialize 3-d array int()()() intArray = { {{10, 20, 30},{20, 40, 60}}, { {10, 30,50,70},{50},{80, 90}} }; System.out.println('Multidimensional Array (3-d) is as follows:'); // use for..each loop to iterate through elements of 3d array for (int()() array_2D: intArray) { for (int() array_1D: array_2D) { for(intelem: array_1D) { System.out.print(elem + ' '); } System.out.println(); } System.out.println(); } } }
Izlaz:

Ulazni niz koji se koristi je trodimenzionalni niz s različitom duljinom stupaca. Poboljšano za svaku petlju koja se koristi za svaku dimenziju prikazuje sadržaj niza u tabličnom formatu.
Često postavljana pitanja
P # 1) Što podrazumijevate pod dvodimenzionalnim nizom?
Odgovor: Dvodimenzionalni niz naziva se nizom nizova i obično je organiziran u obliku matrica koje se sastoje od redaka i stupaca. Dvodimenzionalni niz koristi se uglavnom u relacijskim bazama podataka ili sličnim strukturama podataka.
P # 2) Što je jednodimenzionalni niz u Javi?
Odgovor: Jednodimenzionalni niz u Javi je niz sa samo jednim indeksom. Ovo je najjednostavniji oblik nizova u Javi.
P # 3) Koja je razlika između jednodimenzionalnog niza i dvodimenzionalnog niza?
Odgovor: Jednodimenzionalni niz pohranjuje jedan slijed elemenata i ima samo jedan indeks. Dvodimenzionalni niz pohranjuje niz nizova elemenata i koristi dva indeksa za pristup svojim elementima.
P # 4) Što znači biti dvodimenzionalni?
Odgovor: Dvodimenzionalni znači imati samo dvije dimenzije. U geometrijskom svijetu objekti koji imaju samo visinu i širinu su dvodimenzionalni ili 2D objekti. Ti predmeti nemaju debljinu ili dubinu.
Trokut, pravokutnici itd. 2D su objekti. U softverskom smislu, dvodimenzionalna još uvijek znači imati dvije dimenzije i obično definiramo strukture podataka poput nizova koji mogu imati 1, 2 ili više dimenzija.
P # 5) Koji je prvi u nizu - retci ili stupci?
Odgovor: Dvodimenzionalni nizovi su predstavljeni kao matrice, a matrice su obično zapisane u redovima x stupcima. Na primjer, matrica veličine 2 × 3 imat će 2 retka i 3 stupca. Dakle, i za 2D niz redovi su na prvom mjestu, a stupci sljedeći.
Zaključak
Ovdje se radilo o višedimenzionalnim nizovima na Javi. Raspravljali smo o svim aspektima dvodimenzionalnih nizova, kao i o nizu s više od dvije dimenzije.
Oni se obično nazivaju nizom ili nizovima, jer je u slučaju višedimenzionalnih nizova svaki element drugi niz. Dakle, možemo reći da niz sadrži drugi niz ili jednostavno niz nizova.
U našim predstojećim vodičima istražit ćemo više o nizovima, a zatim prijeći na druge zbirke.
=> Ovdje pripazite na jednostavnu seriju Java treninga.
Preporučena literatura
- Java Array - Kako ispisati elemente niza u Javi?
- Java generički niz - kako simulirati generičke nizove u Javi?
- Multidimenzionalni nizovi i nazubljeni nizovi u C #
- Uvod u Java nizove i srodne koncepte
- Višedimenzionalni nizovi u C ++
- Java vrste podataka, petlje, nizovi, prekidači i tvrdnje
- Java Array - Deklariranje, stvaranje i inicijalizacija niza u Javi
- Vodič o dužini Java polja s primjerima koda