DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

Arrays multidimensionais

  • 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

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay