Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Array estranho

Gostaria de entendero melhor o array estranho descrito abaixo:

int[][] estranho = new int[2][];
estranho[0] = new int[20];
estranho[1] = new int[10];

O que acontece na primeira linha? É criado um array onde a primeira dimensão tem duas posições? e quantas posições tem a segunda?

Na segunda e terceira linha que tipo de acesso a array seria "estranho[0]"? a posição 0 representa a primeira dimensão do array e a 1 a segunda?

2 respostas
solução!

Oi Rods, tudo certo?

  • É isso mesmo! Na primeira linha é criado um array onde a primeira dimensão tem duas posições. A notação int[][] indica que cada posição do array da primeira dimensão aponta para um outro array. Mas ainda não definimos o tamanho desses arrays, então fica nulo:

duas posições do array estao nulas

Também dá pra ver isso, imprimindo as posições:

int[][] estranho = new int[2][];

System.out.println(estranho[0]); // mostra null
System.out.println(estranho[1]); // mostra null

Como cada uma das posições do primeiro array é capaz de apontar pra um outro array, primeiro falamos que a posição 0 irá apontar pra um array de tamanho 20:

O mesmo vale para a terceira linha do código:

Então fica assim : a primeira posição do array aponta pra um outro array de 20 posições, e a segunda pra um array de 10 posições. A dimensões não precisam necessariamente ter o mesmo tamanho. :)

Qualquer dúvida é só avisar. Abraço!

Obrigado, resposta esclarecedora.