multidimensional arrays java 2d
Acest tutorial despre matrici multidimensionale în Java discută despre cum să inițializăm, să accesăm și să imprimăm matrici 2d și 3d în Java cu exemple de sintaxă și cod:
Până acum am discutat despre conceptele majore despre tablourile unidimensionale. Aceste tablouri stochează o singură secvență sau o listă de elemente de același tip de date.
Java acceptă, de asemenea, tablouri cu mai multe dimensiuni și acestea se numesc tablouri multidimensionale.
cel mai bun schimbator de voce gratuit pentru discordie
=> Verificați TOATE Tutorialele Java aici.
Tablourile multidimensionale Java sunt aranjate ca o matrice de tablouri, adică fiecare element al unui tablou multidimensional este un alt tablou. Reprezentarea elementelor se face în rânduri și coloane. Astfel, puteți obține un număr total de elemente într-un tablou multidimensional înmulțind dimensiunea rândului cu dimensiunea coloanei.
Deci, dacă aveți o matrice bidimensională de 3 × 4, atunci numărul total de elemente din această matrice = 3 × 4 = 12.
În acest tutorial, vom explora matrici multidimensionale în Java. Să discutăm mai întâi matricile bidimensionale înainte de a trece la matrice tridimensionale sau mai multe.
Ce veți învăța:
- Matrice bidimensională
- Java MultiDimensional Arrays
- Matrice tridimensionale în Java
- întrebări frecvente
- Concluzie
Matrice bidimensională
Cel mai simplu dintre tabloul multi-dimensional este un tablou bidimensional. O definiție simplă a matricilor 2D este: O matrice 2D este o matrice de matrice unidimensionale.
În Java, o matrice bidimensională este stocată sub formă de rânduri și coloane și este reprezentată sub forma unei matrice.
Declarația generală a unui tablou bidimensional este,
data_type () () array_name;
Aici,
data_type = tipul de date al elementelor care vor fi stocate într-o matrice.
array_name = numele matricei bidimensionale.
Puteți crea o matrice 2D folosind nou, după cum urmează:
data_type () () array_name = new data_type(row_size)(column_size);
Aici,
row_size = numărul de rânduri pe care le va conține o matrice.
column_size = numărul de matrice de coloane va conține.
Deci, dacă aveți o matrice de 3 × 3, aceasta înseamnă că va avea 3 rânduri și 3 coloane.
Aspectul acestei matrice va fi așa cum se arată mai jos.
Rânduri / Coloane | Coloana 1 | Coloana2 | Coloana 3 |
---|---|---|---|
Rândul 1 | (0,0) | (0,1) | (0,2) |
Rândul 2 | (1.0) | (1,1) | (1,2) |
Rândul 3 | (2.0) | (2.1) | (2.2) |
După cum se arată mai sus, fiecare intersecție a rândului și coloanei stochează un element al matricei 2D. Deci, dacă doriți să accesați primul element din matricea 2d, atunci este dat de (0, 0).
Notă că, deoarece dimensiunea matricei este 3 × 3, puteți avea 9 elemente în această matrice.
Un tablou întreg numit „myarray” de 3 rânduri și 2 coloane poate fi declarat ca mai jos.
int ()() myarray = new int(3)(2);
Odată ce matricea este declarată și creată, este timpul să o inițializăm cu valori.
Inițializați matricea 2d
Există diferite moduri de inițializare a matricei 2d cu valori. Prima metodă este metoda tradițională de atribuire a valorilor fiecărui element.
Sintaxa generală pentru inițializare este:
array_name(row_index)(column_index) = value;
Exemplu:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Afirmațiile de mai sus inițializează toate elementele matricei 2d date.
Să-l introducem într-un program și să verificăm rezultatul.
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)); } }
Ieșire:
Această metodă poate fi utilă atunci când dimensiunile implicate sunt mai mici. Pe măsură ce dimensiunea matrice crește, este dificil de utilizat această metodă de inițializare individuală a elementelor.
Următoarea metodă de inițializare a matricei 2d în Java este inițializarea matricei numai în momentul declarației.
Sintaxa generală pentru această metodă de inițializare este cea prezentată mai jos:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
De exemplu, dacă aveți o matrice 2 × 3 de tip int, atunci îl puteți inițializa cu declarația ca:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
Următorul exemplu arată declarația matricei 2d cu inițializare.
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(); } } }
Ieșire:
În programul de mai sus, matricea este inițializată în momentul declarației în sine și apoi sunt afișate valorile.
De asemenea, puteți inițializa sau atribui valorile matricei 2d folosind o buclă așa cum se arată mai jos.
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; } }
Următorul program implementează codul de mai sus.
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(); } } }
Ieșire:
Fiecărui element din matricea 2d de mai sus i se atribuie o valoare „i + 1”. Acest lucru face ca fiecare element dintr-un rând al matricei să conțină aceeași valoare.
Acces și tipărire matrice 2d
Știți deja că, la inițializarea matricei 2d, puteți inițializa elementele individuale ale matricei la o valoare. Acest lucru se face utilizând indexul rândului și indexul coloanelor matricei pentru a accesa un anumit element.
Similar inițializării, puteți accesa și valoarea elementului individual și o puteți imprima utilizatorului.
Sintaxa generală pentru accesarea elementului matrice este:
data_typeval = array_name(row_index)(column_index);
În cazul în care array_name este tabloul al cărui element este accesat și data_type este același cu tipul de date al tabloului.
Următorul program arată cum este accesat și tipărit un element individual.
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)); } }
Ieșire:
În acest fel puteți accesa și imprima cu ușurință elemente de matrice individuale utilizând indicii de rând și coloană încadrați între paranteze pătrate (()).
Puteți imprima întreaga matrice simultan într-un format tabular așa cum se arată mai sus (numit și formular matricial) folosind bucla for. Deoarece aceasta este o matrice bidimensională, trebuie să aveți două bucle pentru aceasta. O buclă pentru a itera prin rânduri, adică bucla exterioară și bucla interioară pentru a traversa coloanele.
În orice moment dat (iterație curentă), elementul particular din matrice este dat de,
array_name (i) (j);
Unde „i” este rândul curent și „j” este coloana curentă.
Următorul program arată tipărirea unei matrice 2d folosind o buclă „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(''); } } }
Ieșire:
În programul de mai sus, matricea 2d este inițializată și apoi elementele sunt tipărite folosind două pentru bucle. Cel exterior este folosit pentru a urmări rândurile, în timp ce bucla interioară pentru coloane.
Java 2d Lungime matrice
Un tablou bidimensional este definit ca tabloul unui tablou unidimensional. Astfel, atunci când aveți nevoie de lungimea unui tablou 2d nu este la fel de simplu ca într-un tablou unidimensional.
Proprietatea lungime pentru un tablou bidimensional returnează numărul de rânduri din tablou. Fiecare rând este un tablou unidimensional. Știți deja că matricea bidimensională este formată din rânduri și coloane. Dimensiunea coloanei poate varia pentru fiecare rând.
Prin urmare, puteți obține dimensiunea fiecărui rând prin iterarea numărului de rânduri.
Următorul program oferă lungimea matricei (numărul de rânduri), precum și dimensiunea fiecărui rând.
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 Ieșire:

Un tablou bidimensional definit mai sus are două rânduri. Fiecare rând este un tablou unidimensional. Primul tablou 1D are 3 elemente (3 coloane) în timp ce al doilea rând are 2 elemente.
Următorul program Java arată utilizarea proprietății length pentru a imprima matricea 2d.
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 Ieșire:

După cum sa menționat deja, bucla exterioară reprezintă rândurile, iar bucla interioară reprezintă coloanele.
Notă: Condiția de terminare din ambele bucle folosește proprietatea length, mai întâi pentru a itera prin rânduri și apoi prin coloane.
Java MultiDimensional Arrays
Am văzut deja tablouri bidimensionale. Java acceptă tablouri cu mai mult de două dimensiuni.
Sintaxa generală a unui tablou multi-dimensional este după cum urmează:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Aici,
d1, d2 ... dn = dimensiunile matricei multidimensionale
(d1_size) (d2_size) ... (dn_size) = dimensiunile respective ale dimensiunilor
data_type = tipul de date al elementelor matricei
array_name = numele matricei multidimensionale
Ca exemplu al unui alt tablou multidimensional, altul decât tabloul 2d, să discutăm detaliile matricilor tridimensionale (3d).
Matrice tridimensionale în Java
Am discutat deja că o matrice devine mai complexă pe măsură ce dimensiunile lor cresc. Tablourile tridimensionale sunt complexe pentru tablourile multidimensionale. Un tridimensional poate fi definit ca o matrice de tablouri bidimensionale.
Definiția generală a unui tablou tridimensional este dată mai jos:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Aici,
d1, d2, d3 = dimensiunile dimensiunilor
data_type = tipul de date al elementelor matricei
array_name = numele matricei 3d
Exemplul definiției matricei 3D este:
int () () () intArray = new int(2)(3)(4);
Definiția de mai sus a matricei 3d poate fi interpretată ca având 2 tabele sau tablouri, 3 rânduri și 4 coloane care totalizează până la 2x3x4 = 24 de elemente.
Aceasta înseamnă că într-o matrice 3d, cele trei dimensiuni sunt interpretate ca:
- Numărul de tabele / tablouri: Prima dimensiune indică câte tabele sau tablouri va avea o matrice 3d.
- Numărul de rânduri: A doua dimensiune semnifică numărul total de rânduri pe care le va avea o matrice.
- Numărul de coloane: A treia dimensiune indică totalul coloanelor din matricea 3d.
Inițializați 3D Array
Abordările utilizate pentru inițializarea unui tablou 3d sunt aceleași cu cele utilizate pentru inițializarea matricilor bidimensionale.
Puteți inițializa matricea atribuind valori elementelor individuale ale matricei sau inițializa matricea în timpul declarației.
Exemplul de mai jos arată inițializarea matricei 3d în timp ce declarația.
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)); } }
Ieșire:

După inițializarea matricei 3d în timpul declarației, am accesat elementele individuale ale matricei și le-am tipărit.
Acces și imprimare matrice 3d
Din nou, imprimarea și accesarea elementelor matrice într-o matrice tridimensională este similară cu cea din matricile bidimensionale.
Programul de mai jos folosește bucle pentru a accesa elementele matricei și a le imprima în consolă.
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(); } } }
Ieșire:

Programul de mai sus afișează o reprezentare tabelară a unui tablou tridimensional. După cum se arată, este o matrice de 3x2x3 ceea ce înseamnă că are 3 tabele, 2 rânduri și 3 coloane și deci 18 elemente.
Se menționează deja că dimensiunea coloanei poate varia într-o matrice multidimensională. Exemplul de mai jos demonstrează o matrice tridimensională cu dimensiuni variate de coloane.
Acest program folosește, de asemenea, îmbunătățit pentru buclă pentru a traversa matricea și afișarea elementelor sale.
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(); } } }
Ieșire:

Matricea de intrare utilizată este o matrice tridimensională cu o lungime variată de coloane. Îmbunătățit pentru fiecare buclă utilizată pentru fiecare dimensiune afișează conținutul matricei într-un format tabelar.
întrebări frecvente
Q # 1) Ce vrei să spui prin matrice bidimensională?
Răspuns: O matrice bidimensională se numește matrice de matrici și este de obicei organizată sub formă de matrice formate din rânduri și coloane. Un tablou bidimensional își găsește utilizarea mai ales în baze de date relaționale sau structuri de date similare.
Q # 2) Ce este o matrice unidimensională în Java?
Răspuns: Matricea unidimensională în Java este o matrice cu un singur index. Aceasta este cea mai simplă formă de matrice din Java.
Q # 3) Care este diferența dintre un tablou unidimensional și un tablou bidimensional?
Răspuns: Matricea unidimensională stochează o singură secvență de elemente și are un singur index. O matrice bidimensională stochează o matrice de matrice de elemente și folosește doi indici pentru a accesa elementele sale.
Q # 4) Ce înseamnă să fii bidimensional?
Răspuns: Bidimensional înseamnă a avea doar două dimensiuni. Într-o lume geometrică, obiectele care au doar înălțime și lățime sunt obiecte bidimensionale sau 2D. Aceste obiecte nu au grosime sau adâncime.
Triunghiul, dreptunghiurile etc. sunt obiecte 2D. În termeni software, bidimensional înseamnă încă să ai două dimensiuni și de obicei definim structuri de date cum ar fi matrice care pot avea 1, 2 sau mai multe dimensiuni.
cum se face matrice generică în java
Q # 5) Care este primul pe o matrice - Rânduri sau Coloane?
Răspuns: Matricile bidimensionale sunt reprezentate ca matrici, iar matricile sunt de obicei scrise în termeni de rânduri x coloane. De exemplu, o matrice de dimensiunea 2 × 3 va avea 2 rânduri și 3 coloane. Prin urmare, și pentru matricea 2D, rândurile sunt primele și coloanele următoare.
Concluzie
Totul a fost despre matrici multi-dimensionale în Java. Am discutat toate aspectele matricilor bidimensionale, precum și despre o matrice cu mai mult de două dimensiuni.
Acestea sunt numite de obicei matrice sau matrici, deoarece, în cazul matricilor multidimensionale, fiecare element este o altă matrice. Astfel, putem spune că o matrice conține o altă matrice sau pur și simplu o matrice de matrice.
În tutorialele noastre viitoare, vom explora mai multe despre tablouri și apoi vom trece la alte colecții.
=> Urmăriți aici seria de antrenament Java simplă.
Lectură recomandată
- Java Array - Cum se imprimă elemente ale unui array în Java?
- Java Generic Array - Cum se pot simula matrici generice în Java?
- Matrici multidimensionale și matrici zimțate în C #
- Introducere în matrice Java și concepte conexe
- Matrice multidimensionale în C ++
- Tipuri de date Java, bucle, tablouri, comutatoare și afirmații
- Java Array - Declarați, creați și inițializați o matrice în Java
- Tutorial Java Array Length cu exemple de cod