multidimensional arrays java 2d
Ta vadnica o večdimenzionalnih nizih v Javi razpravlja o tem, kako inicializirati, dostopati do in natisniti 2d in 3d matrike v Javi s primeri sintakse in kode:
Do zdaj smo razpravljali o glavnih konceptih enodimenzionalnih nizov. Ti nizi shranjujejo eno zaporedje ali seznam elementov istega podatkovnega tipa.
Java podpira tudi nize z več dimenzijami, ki se imenujejo večdimenzionalni nizi.
=> Tukaj preverite VSE Vadnice za Java.
Večdimenzionalni nizi Java so urejeni kot niz nizov, tj. Vsak element večdimenzionalnega polja je drugo polje. Predstavitev elementov je v vrsticah in stolpcih. Tako lahko v večdimenzionalnem polju dobite skupno število elementov tako, da pomnožite velikost vrstice z velikostjo stolpca.
Torej, če imate dvodimenzionalno matriko 3 × 4, potem je skupno število elementov v tej matriki = 3 × 4 = 12.
kako ddos ip brezplačno
V tej vadnici bomo raziskali večdimenzionalne nize v Javi. Najprej se pogovorimo o dvodimenzionalnih nizih, preden preidemo na tri ali več dimenzijskih nizov.
Kaj se boste naučili:
- Dvodimenzionalno polje
- Java večdimenzionalni nizi
- Tridimenzionalni nizi v Javi
- Pogosto zastavljena vprašanja
- Zaključek
Dvodimenzionalno polje
Najenostavnejši od večdimenzionalnega polja je dvodimenzionalno polje. Preprosta definicija 2D nizov je: 2D polje je polje enodimenzionalnih nizov.
V Javi je dvodimenzionalno polje shranjeno v obliki vrstic in stolpcev in je predstavljeno v obliki matrike.
Splošna izjava dvodimenzionalnega polja je,
data_type () () array_name;Tukaj,
data_type = podatkovni tip elementov, ki bodo shranjeni v matriki.
array_name = ime dvodimenzionalne matrike.
2D matriko lahko ustvarite z uporabo novega, kot sledi:
data_type () () array_name = new data_type(row_size)(column_size);Tukaj,
row_size = število vrstic, ki jih bo vsebovala matrika.
column_size = število stolpcev, ki jih bo vsebovala matrika.
Torej, če imate matriko 3 × 3, to pomeni, da bo imela 3 vrstice in 3 stolpce.
Postavitev te matrike bo prikazana spodaj.
| Vrstice / stolpci | Stolpec1 | Stolpec2 | Stolpec3 |
|---|---|---|---|
| Vrstica1 | (0,0) | (0,1) | (0,2) |
| Vrstica2 | (1,0) | (1,1) | (1,2) |
| Vrstica 3 | (2,0) | (2.1) | (2.2) |
Kot je prikazano zgoraj, vsako presečišče vrstice in stolpca shrani element 2D matrike. Torej, če želite dostopati do prvega elementa v 2d matriki, potem je podan z (0, 0).
Opomba da je velikost matrike 3 × 3, lahko imaš 9 elementov v tej matriki.
Celoštevilsko matriko z imenom 'myarray' s 3 vrsticami in 2 stolpcema lahko prijavite kot spodaj.
int ()() myarray = new int(3)(2);Ko je matrika razglašena in ustvarjena, je čas, da jo inicializirate z vrednostmi.
Inicializirajte 2d matriko
Obstajajo različni načini inicializacije 2d matrike z vrednostmi. Prva metoda je tradicionalna metoda dodeljevanja vrednosti vsakemu elementu.
Splošna sintaksa za inicializacijo je:
array_name(row_index)(column_index) = value;Primer:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1; Zgornji stavki inicializirajo vse elemente dane 2d matrike.
Vstavimo ga v program in preverimo izhod.
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)); } } Izhod:

Ta metoda je lahko uporabna, če so dimenzije manjše. Ko dimenzija matrike raste, je težko uporabiti to metodo posamične inicializacije elementov.
Naslednji način inicializacije 2d matrike v Javi je inicializacija matrike samo v času deklaracije.
Splošna sintaksa te metode inicializacije je navedena spodaj:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}}; Na primer, če imate matriko 2 × 3 tipa int, potem lahko ga inicializirate z izjavo kot:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};Naslednji primer prikazuje deklaracijo 2d matrike z inicializacijo.
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(); } } } Izhod:

V zgornjem programu se polje inicializira v času same izjave in nato se prikažejo vrednosti.
Vrednosti lahko tudi inicializirate ali dodelite 2d matriki s pomočjo zanke, kot je prikazano spodaj.
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; } } Naslednji program izvaja zgornjo kodo.
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(); } } } Izhod:

Vsakemu elementu v zgornjem 2d polju je dodeljena vrednost „i + 1“. Zaradi tega vsak element v vrstici polja vsebuje isto vrednost.
Dostop in tiskanje 2d polja
Že veste, da lahko pri inicializaciji 2d matrike posamezne elemente matrike inicializirate na vrednost. To se naredi z uporabo indeksa vrstic in indeksa stolpca matrike za dostop do določenega elementa.
Podobno kot pri inicializaciji lahko tudi do vrednosti posameznega elementa dostopate in ga natisnete uporabniku.
Splošna sintaksa za dostop do elementa matrike je:
data_typeval = array_name(row_index)(column_index);Kjer je ime_ matrive polje, do katerega se dostopa, element_podatkov pa je enak podatkovnemu tipu polja.
Naslednji program prikazuje, kako dostopati do posameznega elementa in ga natisniti.
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)); } } Izhod:

Na ta način lahko enostavno dostopate do posameznih elementov matrike in jih natisnete s pomočjo indeksov vrstic in stolpcev, zaprtih v oglatih (()) oklepajih.
Z zanko for lahko natisnete celotno matriko hkrati v tabelarni obliki, kot je prikazano zgoraj (imenovano tudi matrični obrazec). Ker gre za dvodimenzionalno matriko, morate za to imeti dve zanki. Ena zanka za iteracijo skozi vrstice, tj. Zunanja zanka in notranja zanka za prehod stolpcev.
V danem trenutku (trenutna ponovitev) je določen element v matriki podan z,
ime_ matrike (i) (j);
Kjer je 'i' trenutna vrstica, 'j' pa trenutni stolpec.
Naslednji program prikazuje tiskanje 2d matrike z uporabo zanke '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(''); } } } Izhod:

V zgornjem programu se matrika 2d inicializira in nato elementi natisnejo z dvema zankama. Zunanja se uporablja za sledenje vrstic, notranja zanka for pa za stolpce.
Dolžina polja Java 2d
Dvodimenzionalno polje je definirano kot polje enodimenzionalnega polja. Ko torej potrebujete dolžino 2d polja, ni tako enostavno kot pri enodimenzionalnem polju.
Lastnost length za dvodimenzionalno polje vrne število vrstic v matriki. Vsaka vrstica je enodimenzionalna matrika. Že veste, da je dvodimenzionalno polje sestavljeno iz vrstic in stolpcev. Velikost stolpca se lahko razlikuje za vsako vrstico.
Velikost vsake vrstice lahko torej dobite s ponovitvijo števila vrstic.
Naslednji program poda dolžino polja (število vrstic) in velikost vsake vrstice.
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 Izhod:

Dvodimenzionalno polje, definirano zgoraj, ima dve vrstici. Vsaka vrstica je enodimenzionalna matrika. Prva 1D matrika ima 3 elemente (3 stolpce), druga vrstica pa 2 elementa.
Naslednji program Java prikazuje uporabo lastnosti dolžine za tiskanje 2d matrike.
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 Izhod:

Kot smo že omenili, zunanja zanka predstavlja vrstice, notranja zanka pa stolpce.
Opomba: Končni pogoj v obeh zankah uporablja lastnost dolžine, najprej za iteracijo skozi vrstice in nato skozi stolpce.
Java večdimenzionalni nizi
Dvodimenzionalne nize smo že videli. Java podpira nize z več kot dvema dimenzijama.
Splošna sintaksa večdimenzionalnega polja je naslednja:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size); Tukaj,
d1, d2… dn = dimenzije večdimenzionalnega polja
(d1_size) (d2_size)… (dn_size) = ustrezne velikosti dimenzij
data_type = vrsta podatkov elementov polja
array_name = ime večdimenzionalnega polja
Kot primer še enega večdimenzionalnega polja, ki ni 2d polje, pogovorimo se o podrobnostih tridimenzionalnih (3d) nizov.
Tridimenzionalni nizi v Javi
Že smo razpravljali o tem, da se matrika z naraščanjem dimenzij zapleta. Tridimenzionalni nizi so zapleteni za večdimenzionalne nize. Tridimenzionalno lahko definiramo kot niz dvodimenzionalnih nizov.
Splošna opredelitev tridimenzionalnega polja je podana spodaj:
data_type () () () array_name = new data_type (d1)(d2)(d3); Tukaj,
d1, d2, d3 = velikosti dimenzij
data_type = podatkovni tip elementov polja
array_name = ime 3d matrike
Primer definicije 3d matrike je:
int () () () intArray = new int(2)(3)(4);Zgornjo definicijo 3d matrike lahko razlagamo kot 2 tabeli ali nizi, 3 vrstice in 4 stolpce, ki znaša do 2x3x4 = 24 elementov.
To pomeni, da se v 3d matriki tri dimenzije razlagajo kot:
- Število tabel / nizov: Prva dimenzija označuje, koliko tabel ali nizov bo imelo 3d polje.
- Število vrstic: Druga dimenzija pomeni skupno število vrstic, ki jih bo imela matrika.
- Število stolpcev: Tretja dimenzija označuje skupno število stolpcev v 3d matriki.
Inicializirajte 3d matriko
Pristopi, ki se uporabljajo za inicializacijo 3d polja, so enaki kot za inicializacijo dvodimenzionalnih nizov.
Polje lahko ali inicializirate tako, da dodelite vrednosti posameznim elementom matrike, ali pa inicializirate polje med deklaracijo.
Spodnji primer prikazuje inicializacijo matrike 3d med deklaracijo.
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)); } } Izhod:

Po inicializaciji 3d matrike med deklaracijo smo dostopali do posameznih elementov matrike in jih natisnili.
Dostopa in natisne 3d matriko
Ponovno je tiskanje in dostop do elementov matrike v tridimenzionalnem nizu podobno kot pri dvodimenzionalnih nizih.
Spodnji program uporablja zanke za dostop do elementov matrike in njihovo tiskanje na konzolo.
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(); } } } Izhod:

Zgornji program prikazuje tabelarno predstavitev tridimenzionalnega polja. Kot je prikazano, gre za matriko 3x2x3, kar pomeni, da ima 3 tabele, 2 vrstici in 3 stolpce in s tem 18 elementov.
Že omenjeno je, da se velikost stolpca lahko spreminja v večdimenzionalnem polju. Spodnji primer prikazuje tridimenzionalno matriko z različnimi velikostmi stolpcev.
Ta program uporablja tudi izboljšano zanko for za prehod skozi matriko in prikaz njenih elementov.
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(); } } } Izhod:

Uporabljeno vhodno polje je tridimenzionalno polje z različno dolžino stolpcev. Izboljšana za vsako zanko, uporabljeno za vsako dimenzijo, prikazuje vsebino polja v obliki tabele.
Pogosto zastavljena vprašanja
V # 1) Kaj mislite z dvodimenzionalno matriko?
Odgovor: Dvodimenzionalno polje se imenuje polje nizov in je običajno organizirano v obliki matric, sestavljenih iz vrstic in stolpcev. Dvodimenzionalno polje se uporablja predvsem v relacijskih podatkovnih bazah ali podobnih podatkovnih strukturah.
V # 2) Kaj je enodimenzionalno polje v Javi?
Odgovor: Enodimenzionalno polje v Javi je polje s samo enim indeksom. To je najpreprostejša oblika nizov v Javi.
V # 3) Kakšna je razlika med enodimenzionalno matriko in dvodimenzionalno matriko?
Odgovor: Enodimenzionalno polje shrani posamezno zaporedje elementov in ima samo en indeks. Dvodimenzionalno polje shrani niz nizov elementov in za dostop do svojih elementov uporablja dva indeksa.
V # 4) Kaj pomeni biti dvodimenzionalen?
Odgovor: Dvodimenzionalno pomeni samo dve dimenziji. V geometričnem svetu so predmeti, ki imajo samo višino in širino, dvodimenzionalni ali 2D objekti. Ti predmeti nimajo debeline ali globine.
Trikotnik, pravokotniki itd. So 2D predmeti. V programskem smislu pomeni dvodimenzionalnost še vedno dvodimenzionalnost in običajno definiramo podatkovne strukture, kot so nizi, ki imajo lahko 1, 2 ali več dimenzij.
V # 5) Katera je prva v nizu - vrstice ali stolpci?
Odgovor: Dvodimenzionalna polja so predstavljena kot matrike, matrike pa so običajno zapisane v obliki vrstic x stolpcev. Na primer, matrica velikosti 2 × 3 bo imela 2 vrstici in 3 stolpce. Zato so tudi za 2D matriko vrstice na prvem mestu, stolpci pa naslednji.
Zaključek
Vse je šlo za večdimenzionalne nize v Javi. Razpravljali smo o vseh vidikih dvodimenzionalnih nizov in matrike z več kot dvema dimenzijama.
Običajno se imenujejo matrika ali nizi, saj je v primeru večdimenzionalnih nizov vsak element drug niz. Tako lahko rečemo, da matrika vsebuje drugo matriko ali preprosto matriko.
V naših prihajajočih vadnicah bomo raziskali več o nizih in nato prešli na druge zbirke.
=> Tukaj si oglejte preproste vadbene serije Java.
Priporočeno branje
- Java Array - Kako natisniti elemente polja v Javi?
- Java Generic Array - Kako simulirati generična polja v Javi?
- Večdimenzionalni nizi in neravni nizi v C #
- Uvod v nize Java in sorodne koncepte
- Večdimenzionalni nizi v jeziku C ++
- Java vrste podatkov, zanke, nizi, stikala in trditve
- Java Array - prijavite, ustvarite in inicializirajte polje v Javi
- Vadnica za dolžino polja Java s primeri kode




