O array unidimensional é o mais usado em programação.
Arrays multidimensionais (duas ou mais dimensões) não são raros.
Em Java, o array multidimensional é um array composto por arrays.
Arrays bidimensionais
A forma mais simples de array multidimensional é o array bidimensional.
Um array bidimensional é uma lista de arrays unidimensionais.
Para declarar um array bidimensional de tipo inteiro e tamanho 10x20 chamado table, escreve-se:
int table[][] = new int[10][20]
Em Java, cada dimensão do array é inserida em seu próprio conjunto de colchetes, diferente de outras linguagens que usam vírgulas.
Para acessar o ponto 3,5 do array table, usa-se
table[3][5]
.Exemplo, um array bidimensional é carregado com os números de 1 a 12:
table[0][0] terá o valor 1.
table[0][1] terá o valor 2.
table[0][2] terá o valor 3, e assim por diante.
O valor de table[2][3] será 12.
Conceitualmente, o array se parece com o mostrado na Figura 5-1:
Arrays irregulares
Ao alocar memória para um array multidimensional, só é necessário especificar a memória da primeira dimensão (a da extrema esquerda).
As outras dimensões podem ser alocadas separadamente.
Exemplo: o código aloca memória para a primeira dimensão do array table quando declarado.
A segunda dimensão é alocada manualmente.
int table[][] = new int[3][];
table[0] = new int[4];
table[1] = new int[4];
table[2] = new int[4];
Alocar individualmente os conjuntos da segunda dimensão pode ser vantajoso em algumas situações.
Ao alocar as dimensões separadamente, não é necessário alocar o mesmo número de elementos para cada índice.
Arrays multidimensionais em Java são compostos por arrays, permitindo controle sobre o tamanho de cada array.
Exemplo: programa para armazenar o número de passageiros de um ônibus do aeroporto.
O ônibus faz 10 viagens diárias durante a semana e 2 viagens diárias no sábado e domingo.
O array riders no programa possui a segunda dimensão com tamanho 10 para os primeiros cinco índices e tamanho 2 para os dois últimos índices.
O uso de arrays multidimensionais irregulares não é recomendado na maioria dos aplicativos, pois contraria as expectativas comuns.
Arrays irregulares podem ser eficazes em algumas situações específicas.
Exemplo: um array bidimensional grande e esparsamente preenchido pode se beneficiar de um array irregular.
Arrays de três ou mais dimensões
Java permite arrays com mais de duas dimensões.
Forma geral de declaração de array multidimensional: tipo nome[][]...[ ] = new tipo[tamanho1][tamanho2]...[tamanhoN].
Exemplo:
int multidim[][][] = new int[4][10][3]
cria um array tridimensional inteiro de 4 × 10 × 3.
Inicializando arrays multidimensionais
Um array multidimensional pode ser inicializado inserindo a lista de inicializadores de cada dimensão em seu próprio conjunto de chaves.
val indica um valor de inicialização.
Cada bloco interno designa uma linha, com valores armazenados em posições correspondentes do subarray.
Vírgulas separam os blocos inicializadores, e um ponto e vírgula vem após a chave de fechamento.
Exemplo: o programa inicializa um array chamado sqrs com os números de 1 a 10 e seus quadrados.
Saída:
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100