En Java, una matriz bidimensional se considera una matriz de matrices , es decir, una matriz bidimensional es una matriz unidimensional especial y cada elemento de la matriz bidimensional es una matriz unidimensional.
Tipo de datos del elemento [][] Nombre de la matriz = nuevo Tipo de datos del elemento [longitud de la matriz bidimensional][longitud de la matriz unidimensional];
int[][]arr=newint[3][2];
La situación anterior representa que hay tres matrices unidimensionales y cada matriz unidimensional tiene 2 elementos.
Tipo de datos del elemento [][] Nombre de la matriz = nuevo Tipo de datos del elemento [longitud de la matriz bidimensional][];
int[][]arr=newint[3][];
La situación anterior representa que hay tres matrices unidimensionales, pero la cantidad de elementos en cada matriz unidimensional es incierta y la cantidad de elementos en cada matriz unidimensional puede ser diferente.
Tipo de datos del elemento [][] Nombre de la matriz = {{Elemento 1, Elemento 2,…}, {Elemento 1, Elemento 2,…},…};
int[][]arr={{1,2,3},{4,5},{6,7,8,9}};
La situación anterior representa que hay 3 matrices unidimensionales. La primera matriz unidimensional tiene 3 elementos, la segunda matriz unidimensional tiene 2 elementos y la tercera matriz unidimensional tiene 4 elementos cada una. una matriz unidimensional puede ser diferente.
Hay dos formatos para declarar una matriz bidimensional:
Tipo de elemento de matriz nombre de matriz [][];
Tipo de elemento de matriz[][] nombre de matriz;
Por ejemplo:
charcat[][];char[][]gato;
La inicialización de matrices bidimensionales es la misma que la de matrices del mismo tamaño. Hay dos formas: inicialización dinámica e inicialización estática.
1) Declarar primero y luego inicializar estáticamente
Tipo de datos del elemento [][] nombre de la matriz bidimensional; nombre de la matriz bidimensional = nuevo tipo de datos del elemento [][]{{elemento 1, elemento 2, elemento 3,...},{lista de valores en el segunda fila},…,{Lista de valores en la fila n}};
2) Inicialización estática al declarar
Tipo de datos del elemento [][] Nombre de matriz bidimensional = nuevo Tipo de datos del elemento [][]{{Elemento 1, Elemento 2, Elemento 3,…},{Lista de valores de la segunda fila},…,{nésimo lista de valores de fila}};
Nota : Los números no se pueden escribir en "[][]" en el "tipo de datos del nuevo elemento [][]" a la derecha, porque el número de filas y columnas está determinado por el número de elementos en {}.
3) Método de escritura simplificado de inicialización estática al mismo tiempo de la declaración.
Tipo de datos del elemento [][] Nombre de matriz bidimensional = {{elemento 1, elemento 2, elemento 3,…},{lista de valores en la segunda fila},…,{lista de valores en la enésima fila}};
Por ejemplo:
publicclassMain{publicstaticvoidmain(String[]args){int[][]arr={{1,2,3},{4,5},{6}};//Definir matriz System.out.println(arr[0 ][0]);//1System.out.println(arr[1][0]);//4System.out.println(arr[2][0]);//6System.out.println(arr[ 0][1]);//2System.out.println(arr[1][1]);//5System.out.println(arr[2][1]);//Fuera de límites}}
La creación de inicialización dinámica no necesita declarar la longitud de la matriz unidimensional interna. Por lo tanto, la longitud de cada matriz unidimensional puede ser diferente. Por lo tanto, existen los siguientes dos métodos de inicialización.
1) Inicialización dinámica 1: tabla bidimensional de reglas
El programador especifica la longitud de la matriz y asigna el valor más tarde. Al principio, el sistema dará el valor inicial predeterminado del elemento. Una tabla bidimensional normal significa que el número de columnas en cada fila es el mismo. El formato general es el siguiente. Primero determine el número de filas y el número de columnas:
Tipo de datos del elemento [][] Nombre de matriz bidimensional = tipo de datos del nuevo elemento [m][n];
Donde m representa cuántas matrices unidimensionales hay en esta matriz bidimensional, o cuántas filas hay en la tabla bidimensional, n representa cuántos elementos hay en cada matriz unidimensional, o cuántas celdas hay; están en cada fila.
En este punto, se crea la matriz, se determina el número de filas y columnas y los elementos tienen valores predeterminados. Luego asigna nuevos valores a los elementos:
Nombre de matriz bidimensional [subíndice de fila] [subíndice de columna] = valor;
Por ejemplo:
publicclassMain{publicstaticvoidmain(String[]args){int[][]arr=newint[3][2];/*Defina una matriz bidimensional arr. Esta matriz bidimensional tiene tres elementos de matriz unidimensionales. -matriz dimensional Hay 2 elementos */System.out.println(arr);//Muestra el nombre de la matriz bidimensional System.out.println(arr[0]);//Muestra el nombre del primer elemento de la matriz bidimensional y el nombre de la matriz unidimensional System.out.println(arr[0][0]);// Genera los elementos de la matriz bidimensional}}
2) Inicialización dinámica 2: tabla bidimensional irregular
Una tabla bidimensional irregular significa que el número de columnas en cada fila puede ser diferente. Su formato general es el siguiente. Primero determine el número total de filas:
Tipo de datos del elemento [][] Nombre de matriz bidimensional = tipo de datos del nuevo elemento [número total de filas][];
En este momento, solo se determina el número total de filas, y cada fila ahora es nula. Luego se determina el número de columnas en cada fila y se crea una matriz unidimensional de cada fila:
Nombre de matriz bidimensional [subíndice de fila] = tipo de datos del nuevo elemento [número total de columnas en la fila];
En este momento, los elementos de las filas que pasan nuevo tienen valores predeterminados y las filas que no pasan nuevo siguen siendo nulas. Finalmente, a los elementos se les asigna un valor:
Nombre de matriz bidimensional [subíndice de fila] [subíndice de columna] = valor;
Nota : Las tablas bidimensionales irregulares, después de la declaración, no se pueden abreviar al inicializar la matriz unidimensional interna.
//La tabla bidimensional irregular define una matriz bidimensional int[][]arr=newint[3][]; //3 filas, columnas desconocidas //Inicializa el valor del elemento en la matriz bidimensional arr[0]= newint[ ]{1};//Esto no se puede abreviar como arr[0]={1}arr[1]=newint[]{2,3};arr[2]=newint[]{4,5,6 };
El recorrido de una matriz bidimensional es el mismo que el de una matriz unidimensional. La diferencia es que primero se requiere un bucle externo para atravesar cada matriz unidimensional. El formato general es el siguiente:
for(inti=0;i<nombre de matriz bidimensional.length;i++){for(intj=0;j<nombre de matriz bidimensional[i].length;j++){System.out.print(bidimensional nombre de matriz [i][j]);}System.out.println();}