Arrays multidimensionais

Java para Iniciantes (Oracle) - Aug 6 - - Dev Community
  • 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:

Image description

  • 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:
    Image description

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.

Image description

  • 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.

  • Forma geral de inicialização de um array bidimensional:
    Image description

  • 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.

Image description

Saída:
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
10 100

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player