multidimensional arrays java 2d
Aquest tutorial sobre matrius multidimensionals a Java parla de com inicialitzar, accedir i imprimir matrius 2d i 3d a Java amb exemples de sintaxi i codi:
Fins ara hem debatut sobre els conceptes principals sobre matrius unidimensionals. Aquestes matrius emmagatzemen una única seqüència o llista d'elements del mateix tipus de dades.
Java també admet matrius amb més d’una dimensió i s’anomenen matrius multidimensionals.
=> Consulteu TOTS els tutorials de Java aquí.
Les matrius multidimensionals de Java s’organitzen com una matriu de matrius, és a dir, cada element d’una matriu multidimensional és una altra matriu. La representació dels elements es fa en files i columnes. Per tant, podeu obtenir un nombre total d'elements en una matriu multidimensional multiplicant la mida de la fila amb la mida de la columna.
Per tant, si teniu una matriu bidimensional de 3 × 4, el nombre total d’elements d’aquesta matriu = 3 × 4 = 12.
En aquest tutorial, explorarem matrius multidimensionals a Java. Anem a discutir primer els matrius bidimensionals abans de passar a matrius tridimensionals o més.
Què aprendreu:
- Matriu bidimensional
- Matrius multidimensionals de Java
- Matrius tridimensionals a Java
- Preguntes freqüents
- Conclusió
Matriu bidimensional
La més simple de la matriu multidimensional és una matriu bidimensional. Una definició simple de matrius 2D és: Una matriu 2D és una matriu de matrius unidimensionals.
A Java, una matriu bidimensional s’emmagatzema en forma de files i columnes i es representa en forma de matriu.
La declaració general d'una matriu bidimensional és,
data_type () () array_name;
Aquí,
data_type = tipus de dades d’elements que s’emmagatzemaran en una matriu.
array_name = nom de la matriu bidimensional.
Podeu crear una matriu 2D utilitzant una nova versió següent:
data_type () () array_name = new data_type(row_size)(column_size);
Aquí,
fila_mida = nombre de files que contindrà una matriu.
column_size = nombre de matrius de columnes que contindrà.
Per tant, si teniu una matriu de 3 × 3, això vol dir que tindrà 3 files i 3 columnes.
El disseny d'aquesta matriu serà el que es mostra a continuació.
Files / Columnes | Column1 | Column2 | Column3 |
---|---|---|---|
Fila 1 | (0,0) | (0,1) | (0,2) |
Fila 2 | (1,0) | (1,1) | (1,2) |
Fila 3 | (2,0) | (2,1) | (2,2) |
Com es mostra més amunt, cada intersecció de files i columnes emmagatzema un element de la matriu 2D. Per tant, si voleu accedir al primer element de la matriu 2d, donat per (0, 0).
Nota que com que la mida de la matriu és 3 × 3, podeu tenir 9 elements en aquesta matriu.
Es pot declarar una matriu sencera anomenada 'myarray' de 3 files i 2 columnes a continuació.
int ()() myarray = new int(3)(2);
Un cop declarada i creada la matriu, és hora d'inicialitzar-la amb valors.
Inicialitzeu la matriu 2d
Hi ha diverses maneres d'inicialitzar la matriu 2d amb valors. El primer mètode és el mètode tradicional d’assignar valors a cada element.
La sintaxi general per a la inicialització és:
array_name(row_index)(column_index) = value;
Exemple:
int()() myarray = new int(2)(2); myarray(0)(0) = 1; myarray(0)(1) = myarray(1)(0) = 0; myarray(1)(1) = 1;
Les sentències anteriors inicialitzen tots els elements de la matriu 2d donada.
Posem-lo en un programa i comprovem la sortida.
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)); } }
Sortida:
Aquest mètode pot ser útil quan les dimensions implicades són més petites. A mesura que la dimensió de la matriu creix, és difícil utilitzar aquest mètode d'inicialització individual dels elements.
El següent mètode d'inicialització de la matriu 2d a Java és inicialitzar la matriu només en el moment de la declaració.
La sintaxi general d’aquest mètode d’inicialització és la següent:
data_type()() array_name = {{val_r1c1,val_r1c2,...val_r1cn}, {val_r2c1, val_r2c2,...val_r2cn}, … {val_rnc1, val_rnc2,…val_rncn}};
Per exemple, si teniu una matriu 2 × 3 de tipus int, llavors podeu inicialitzar-lo amb la declaració com:
int ()() intArray = {{1, 2, 3}, {4, 5, 6}};
L'exemple següent mostra la declaració de matriu 2d amb inicialització.
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(); } } }
Sortida:
Al programa anterior, la matriu s'inicialitza en el moment de la declaració i es mostren els valors.
També podeu inicialitzar o assignar els valors a la matriu 2d mitjançant un bucle com es mostra a continuació.
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; } }
El programa següent implementa el codi anterior.
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(); } } }
Sortida:
A cada element de la matriu 2d anterior se li assigna un valor 'i + 1'. Això fa que cada element d'una fila de la matriu contingui el mateix valor.
Accés i impressió de matriu 2d
Ja sabeu que quan inicialitzeu la matriu 2d, podeu inicialitzar els elements individuals de la matriu a un valor. Això es fa utilitzant l’índex de fila i l’índex de columna de la matriu per accedir a un element concret.
De manera similar a la inicialització, també podeu accedir al valor de l’element individual i imprimir-lo a l’usuari.
La sintaxi general per accedir a l'element de matriu és:
data_typeval = array_name(row_index)(column_index);
On array_name és la matriu a l’element a la qual s’accedeix i data_type és el mateix que el tipus de dades de la matriu.
El programa següent mostra com s’accedeix i s’imprimeix a 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)); } }
Sortida:
D'aquesta manera, podeu accedir i imprimir fàcilment elements de matriu individuals mitjançant índexs de fila i columna inclosos entre claudàtors (()).
Podeu imprimir tota la matriu alhora en un format tabular, tal com es mostra més amunt (també anomenat formulari de matriu) mitjançant el bucle for. Com que es tracta d'una matriu bidimensional, heu de tenir dos bucles per a això. Un bucle per recórrer les files, és a dir, el bucle exterior i el bucle intern per recórrer les columnes.
En qualsevol instant donat (iteració actual), l'element particular de la matriu ve donat per,
array_name (i) (j);
On 'i' és la fila actual i 'j' és la columna actual.
El programa següent mostra la impressió d’una matriu 2d mitjançant un bucle ‘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(''); } } }
Sortida:
Al programa anterior, s’inicialitza la matriu 2d i després s’imprimeixen els elements utilitzant dos per a bucles. L'exterior s'utilitza per fer un seguiment de les files mentre que l'interior per al bucle és per a les columnes.
Longitud de matriu de Java 2d
Una matriu bidimensional es defineix com la matriu d’una matriu unidimensional. Per tant, quan es necessita la longitud d'una matriu 2d no és tan senzill com en una matriu unidimensional.
La propietat de longitud d'una matriu bidimensional retorna el nombre de files de la matriu. Cada fila és una matriu unidimensional. Ja sabeu que la matriu bidimensional consta de files i columnes. La mida de la columna pot variar per a cada fila.
Per tant, podeu obtenir la mida de cada fila iterant pel nombre de files.
El programa següent proporciona la longitud de la matriu (nombre de files), així com la mida de cada fila.
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 Sortida:
Una matriu bidimensional definida anteriorment té dues files. Cada fila és una matriu unidimensional. La primera matriu 1D té 3 elements (3 columnes) mentre que la segona fila té 2 elements.
El següent programa Java mostra l'ús de la propietat de longitud per imprimir la matriu 2d.
llocs web d’anime per veure anime gratis
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 Sortida:
Com ja s'ha esmentat, el bucle exterior representa les files i el bucle interior representa les columnes.
Nota: La condició de finalització dels dos bucles utilitza la propietat length, primer per iterar a través de files i després a través de columnes.
Matrius multidimensionals de Java
Ja hem vist matrius bidimensionals. Java admet matrius amb més de dues dimensions.
La sintaxi general d'una matriu multidimensional és la següent:
data_type (d1)(d2)…(dn) array_name = new data_type(d1_size)(d2_size)…(dn_size);
Aquí,
d1, d2 ... dn = dimensions de la matriu multidimensional
(d1_size) (d2_size) ... (dn_size) = mides respectives de les dimensions
data_type = tipus de dades dels elements de la matriu
array_name = nom de la matriu multidimensional
Com a exemple d’una matriu multidimensional més que no sigui la matriu 2d, analitzem els detalls de les matrius tridimensionals (3d).
Matrius tridimensionals a Java
Ja hem comentat que una matriu es fa més complexa a mesura que augmenten les seves dimensions. Les matrius tridimensionals són complexes per a matrius multidimensionals. Una tridimensional es pot definir com una matriu de matrius bidimensionals.
A continuació es dóna la definició general d’una matriu tridimensional:
data_type () () () array_name = new data_type (d1)(d2)(d3);
Aquí,
d1, d2, d3 = mides de les dimensions
data_type = tipus de dades dels elements de la matriu
array_name = nom de la matriu 3d
Un exemple de definició de matriu 3d és:
int () () () intArray = new int(2)(3)(4);
La definició anterior de matriu 3d es pot interpretar com a 2 taules o matrius, 3 files i 4 columnes que totalitzen fins a 2x3x4 = 24 elements.
Això significa que en una matriu 3D, les tres dimensions s’interpreten com:
- El nombre de taules / matrius: La primera dimensió indica quantes taules o matrius tindrà una matriu 3D.
- El nombre de files: La segona dimensió significa el nombre total de files que tindrà una matriu.
- El nombre de columnes: La tercera dimensió indica el total de columnes de la matriu 3d.
Inicialitzeu la matriu 3d
Els enfocaments utilitzats per inicialitzar una matriu 3d són els mateixos que els que s’utilitzen per inicialitzar matrius bidimensionals.
Podeu inicialitzar la matriu assignant valors a elements de matriu individuals o inicialitzar la matriu durant la declaració.
L'exemple següent mostra la inicialització de la matriu 3d mentre es declara.
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)); } }
Sortida:
Després d'inicialitzar la matriu 3D durant la declaració, hem accedit als elements individuals de la matriu i els hem imprès.
Accés i impressió de matriu 3d
Una vegada més, la impressió i l'accés a elements de matriu en una matriu tridimensional és similar a la de les matrius bidimensionals.
El programa següent utilitza bucles per accedir als elements de la matriu i imprimir-los a la consola.
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(); } } }
Sortida:
El programa anterior mostra una representació tabular d'una matriu tridimensional. Com es mostra, és una matriu de 3x2x3 el que significa que té 3 taules, 2 files i 3 columnes i, per tant, 18 elements.
Ja s'ha esmentat que la mida de la columna pot variar en una matriu multidimensional. L'exemple següent mostra una matriu tridimensional amb mides de columna variades.
Aquest programa també utilitza el bucle millorat per recórrer la matriu i mostrar-ne els elements.
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(); } } }
Sortida:
La matriu d'entrada utilitzada és una matriu tridimensional amb una longitud variada de columnes. El valor millorat per a cada bucle utilitzat per a cada dimensió mostra el contingut de la matriu en un format tabular.
Preguntes freqüents
P # 1) Què voleu dir amb matriu bidimensional?
Resposta: Una matriu bidimensional s’anomena matriu de matrius i s’organitza generalment en forma de matrius que consisteixen en files i columnes. Una matriu bidimensional utilitza principalment bases de dades relacionals o estructures de dades similars.
Q # 2) Què és una matriu unidimensional a Java?
Resposta: La matriu unidimensional a Java és una matriu amb només un índex. Aquesta és la forma més simple de matrius a Java.
Q # 3) Quina diferència hi ha entre una matriu unidimensional i una matriu bidimensional?
Resposta: La matriu unidimensional emmagatzema una seqüència única d’elements i només té un índex. Una matriu bidimensional emmagatzema una matriu d'arrays d'elements i utilitza dos índexs per accedir als seus elements.
Q # 4) Què significa ser bidimensional?
Resposta: Bidimensional significa només tenir dues dimensions. En un món geomètric, els objectes que només tenen alçada i amplada són objectes bidimensionals o 2D. Aquests objectes no tenen gruix ni profunditat.
El triangle, els rectangles, etc. són objectes 2D. En termes de programari, bidimensional encara significa tenir dues dimensions i normalment definim estructures de dades com ara matrius que poden tenir 1, 2 o més dimensions.
P # 5) Quina és la primera en una matriu: files o columnes?
Resposta: Les matrius bidimensionals es representen com a matrius i les matrius s’escriuen generalment en termes de files x columnes. Per exemple, una matriu de mida 2 × 3 tindrà 2 files i 3 columnes. Per tant, també per a la matriu 2D, les files són les primeres i les columnes després.
Conclusió
Tot es tractava de matrius multidimensionals a Java. Hem discutit tots els aspectes de les matrius bidimensionals, així com una matriu amb més de dues dimensions.
Normalment s’anomenen matrius o matrius ja que, en el cas de matrius multidimensionals, cada element és una altra matriu. Per tant, podem dir que una matriu conté una altra matriu o simplement una matriu de matrius.
Als nostres propers tutorials, explorarem més informació sobre matrius i després passarem a altres col·leccions.
=> Vigileu aquí les sèries de formació Java senzilles.
Lectura recomanada
- Java Array - Com imprimir elements d'un array a Java?
- Matriu genèrica de Java: com simular matrius genèrics a Java?
- Matrius multidimensionals i matrius dentats en C #
- Introducció a matrius de Java i conceptes relacionats
- Matrius multidimensionals en C ++
- Tipus de dades, bucles, matrius, commutadors i assercions de Java
- Matriu Java: declarar, crear i inicialitzar una matriu a Java
- Tutorial de longitud de matriu de Java amb exemples de codi