-
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 10×20 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