Em Java, um array bidimensional é considerado um array de arrays , ou seja, um array bidimensional é um array unidimensional especial e cada elemento do array bidimensional é um array unidimensional.
Tipo de dados do elemento [][] Nome do array = novo Tipo de dados do elemento [comprimento do array bidimensional][comprimento do array unidimensional];
int[][]arr=newint[3][2];
A situação acima representa que existem três matrizes unidimensionais e cada matriz unidimensional possui 2 elementos.
Tipo de dados do elemento [][] Nome do array = novo Tipo de dados do elemento [comprimento do array bidimensional][];
int[][]arr=newint[3][];
A situação acima representa que existem três matrizes unidimensionais, mas o número de elementos em cada matriz unidimensional é incerto e o número de elementos em cada matriz unidimensional pode ser diferente.
Tipo de dados do elemento [][] Nome da matriz = {{Elemento 1, Elemento 2,…}, {Elemento 1, Elemento 2,…},…};
int[][]arr={{1,2,3},{4,5},{6,7,8,9}};
A situação acima representa que existem 3 matrizes unidimensionais. A primeira matriz unidimensional possui 3 elementos, a segunda matriz unidimensional possui 2 elementos e a terceira matriz unidimensional possui 4 elementos. uma matriz unidimensional pode ser diferente.
Existem dois formatos para declarar um array bidimensional:
Tipo de elemento da matriz nome da matriz[][];
Tipo de elemento do array[][] nome do array;
Por exemplo:
charcat[][];char[][]gato;
A inicialização de arrays bidimensionais é igual à de arrays da mesma dimensão. Existem duas maneiras: inicialização dinâmica e inicialização estática.
1) Declare primeiro e depois inicialize estaticamente
Tipo de dados do elemento [][] nome da matriz bidimensional; nome da matriz bidimensional = novo tipo de dados do elemento [][]{{elemento 1, elemento 2, elemento 3,...},{lista de valores na segunda linha},…,{Lista de valores na linha n}};
2) Inicialização estática durante a declaração
Tipo de dados do elemento [][] Nome da matriz bidimensional = novo Tipo de dados do elemento [][]{{Elemento 1, Elemento 2, Elemento 3,…},{Lista de valores da segunda linha},…,{nth lista de valores de linha }};
Nota : Os números não podem ser escritos em "[][]" no "tipo de dados do novo elemento [][]" à direita, porque o número de linhas e colunas é determinado pelo número de elementos em {}.
3) Método de escrita simplificado de inicialização estática ao mesmo tempo da declaração
Tipo de dados do elemento [][] Nome do array bidimensional = {{elemento 1, elemento 2, elemento 3,…},{lista de valores na segunda linha},…,{lista de valores na enésima linha}};
Por exemplo:
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]);//Fora dos limites}}
A criação de inicialização dinâmica não precisa declarar o comprimento da matriz unidimensional interna. Portanto, o comprimento de cada matriz unidimensional pode ser diferente.
1) Inicialização dinâmica 1: tabela bidimensional de regras
O programador especifica o comprimento da matriz e atribui o valor posteriormente. No início, o sistema fornecerá o valor inicial padrão do elemento. Uma tabela bidimensional regular significa que o número de colunas em cada linha é o mesmo. o formato geral é o seguinte. Primeiro determine o número de linhas e o número de colunas:
Tipo de dados do elemento [][] Nome da matriz bidimensional = tipo de dados do novo elemento [m][n];
Onde m representa quantas matrizes unidimensionais existem nesta matriz bidimensional, ou quantas linhas existem na tabela bidimensional, n representa quantos elementos existem em cada matriz unidimensional, ou quantas células existem; estão em cada linha.
Neste ponto, o array é criado, o número de linhas e colunas é determinado e os elementos possuem valores padrão. Em seguida, atribua novos valores aos elementos:
Nome da matriz bidimensional[subscrito de linha][subscrito de coluna]=valor;
Por exemplo:
publicclassMain{publicstaticvoidmain(String[]args){int[][]arr=newint[3][2];/*Defina um array bidimensional arr. matriz -dimensional Existem 2 elementos */System.out.println(arr);//Exibe o nome da matriz bidimensional System.out.println(arr[0]);//Exibe o nome do primeiro elemento do array bidimensional e o nome do array unidimensional System.out.println(arr[0][0]);//Produz os elementos do array bidimensional}}
2) Inicialização dinâmica 2: tabela bidimensional irregular
Uma tabela bidimensional irregular significa que o número de colunas em cada linha pode ser diferente. Seu formato geral é o seguinte: Primeiro determine o número total de linhas.
Tipo de dados do elemento [][] Nome da matriz bidimensional = tipo de dados do novo elemento [número total de linhas][];
Neste momento, apenas o número total de linhas é determinado, e cada linha agora é nula. Em seguida, o número de colunas em cada linha é determinado e uma matriz unidimensional de cada linha é criada:
Nome da matriz bidimensional [subscrito da linha] = tipo de dados do novo elemento [número total de colunas na linha];
Neste momento, os elementos das linhas que passam new têm valores padrão e as linhas que não passam new ainda são nulas. Finalmente, os elementos recebem um valor:
Nome da matriz bidimensional[subscrito de linha][subscrito de coluna]=valor;
Nota : Tabelas bidimensionais irregulares, após declaração, não podem ser abreviadas ao inicializar o array unidimensional interno.
//Tabela bidimensional irregular define array bidimensional int[][]arr=newint[3][] //3 linhas, colunas desconhecidas //Inicializa o valor do elemento no array bidimensional arr[0]= newint[ ]{1};//Isso não pode ser abreviado como arr[0]={1}arr[1]=newint[]{2,3};arr[2]=newint[]{4,5,6 };
A travessia de uma matriz bidimensional é igual à de uma matriz unidimensional. A diferença é que primeiro é necessário um loop externo para percorrer cada matriz unidimensional.
for(inti=0;i<nome da matriz bidimensional.comprimento;i++){for(intj=0;j<nome da matriz bidimensional[i].comprimento;j++){System.out.print(bidimensional nome da matriz[i][j]);}System.out.println();}