Arrays multidimensionais em Java

Avatar


7 de Janeiro de 2023

Teoria

Arrays são objetos que contém um conjunto de valores do mesmo tipo.

Um componente de array representa um elemento de um array. É uma variável e é acessado por um índice dentro de um array.

Os índices de um array, ou posições, vão de 0 até n – 1. Sendo n o tamanho do array.

O tamanho de um array:

  • É estabelecido quando o array é criado; e
  • É fixo.

Exemplo:

byte[] arrayBytes; // Declaração do array.
arrayBytes = new byte[10]; // Criação do array com 10 posições.

Podemos ter um array onde cada componente representa outro array, ou seja, podemos ter arrays multidimensionais, que são arrays de arrays.

Sintaxe:

tipo[ ][ ] array = new tipo[n][m];

Onde cada par de colchetes [ ] define uma dimensão, sendo que o primeiro par representa o array principal ([n]).

Para acessarmos um elemento, precisamos utilizar o índice de cada dimensão.

Exemplo:

// Array declarado e criado com tamanho 2 x 3.
// Dois candidatos e três notas para cada um.
double[][] notasProvas = new double[2][3];

// Cada componente inicializado com um valor de forma explícita.
notasProvas[0][0] = 9.0;
notasProvas[0][1] = 7.0;
notasProvas[0][2] = 7.5;
notasProvas[1][0] = 8.0;
notasProvas[1][1] = 10.0;
notasProvas[1][2] = 8.5;

No exemplo acima, temos um array notasProvas do tipo double. Ele é um array bidimensional de 2 x 3 elementos, ou seja, serão 6 elementos no total. A primeira dimensão define o array principal, no exemplo, é um array de dois componentes. A segunda dimensão representa o array de cada componente da primeira dimensão:

  • Elemento 0 do array principal possui um array de três componentes do tipo double; e
  • Elemento 1 do array principal possui um array de três componentes do tipo double.

Continuando no exemplo, temos o seguinte:

notasProvas[0][0] = 9;

Na linha acima, estamos acessando a posição 0 do array principal e, dentro dessa posição, acessamos a posição 0. Nesse elemento, jogamos a nota 9.0.

Figura 1: Esquema de um array bidimensional.

Figura 1: Esquema de um array bidimensional.

Questões de concursos

[FGV 2018 AL/RO – Analista Legislativo/Infraestrutura de Redes e Comunicação] Analise a definição de um array em Java.

int[][] multi = new int[5][10];

Assinale o código que exibe corretamente um elemento de cada linha desse array.

a)

for (int i = 0; i < 5; i++) {
    System.out.println(multi[i][0]);
};

b)

for (int i = 0; i < 10; i++) {
    System.out.println(multi[i,1]);
};

c)

for (int i = 0; i <= 5; i++) {
    System.out.println(multi[i,0]);
};

d)

for (int i = 0; i <= multi.length; i++) {
    System.out.println(multi[1,i]);
};

e)

for (int i = 1; i < multi[0].length; i++) {
    System.out.println(multi[i,1]);
};

Comentários:

A questão traz a declaração de um array bidimensional multi do tipo int, ou seja, todos os seus elementos ou componentes serão do tipo int.

Na mesma linha da declaração do array, temos sua criação, ou seja, a definição de seu tamanho: 5 elementos principais, sendo que cada elemento será um array de 10 posições. Então o array multi tem 50 componentes ao todo.

Para acessarmos cada elemento do array multi, temos que usar a sintaxe multi[n][m], sendo n o índice do array principal.

Com essa informação, podemos citar que apenas a letra a seguiu corretamente a sintaxe acima, fazendo dela nosso gabarito.

Na letra a, temos a estrutura de repetição for, com a variável i do tipo int que recebe o valor 1 na expressão de inicialização. Depois é a aplicada a expressão de condição: enquanto o valor da variável i for menor que 5, execute as instruções dentro do bloco da estrutura.

Após a expressão de condição, é impresso o valor do elemento na posição multi[i][0], ou seja, o primeiro elemento de cada componente do array principal.

No final do corpo da declaração for, a variável i é incrementada na expressão de incremento. Após isso, é a expressão de condição é feita novamente.

Gabarito: letra a.

Então é isso!
[]s e até a próxima!
_________________________
Professor Rogerão Araújo

Avatar


7 de Janeiro de 2023