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

Dúvida sobre arrays multidimensional

Boa noite, além dos cursos na alura, tenho feitos simulados, e me deparei com a seguinte questão , e gostaria de tirar minha duvida compartilhando tbm com a comunidade alura :


  class Teste {
    public static void main(String[] args) {
      int[][] array = new int[2][];

      array[0] = new int[3];
      array[1] = new int[2];
      System.out.println(array.length + array[1].length);
    }
  }

eu achei que a saída do programa seria o valor 5 porém foi impresso 4.

fazendo testes eu notei que não consigo realocar o vetor de posição 0, porém consigo realocar o vetor de posição 1 sempre que eu queira.

bem, agora eu sei que não consigo realocar o vetor, mas gostaria de saber e entender o porquê disto, alguém poderia me ajudar ?

obs : tava revisando para a prova que farei amanhã rs

2 respostas
solução!

Bom noite Lúcio, quando criou o array colocou 2, então temos um array de duas posições que em cada posição dele vai ter um array certo ?

Então o array.length é 2.

Dai nas linhas:

array[0] = new int[3];
array[1] = new int[2];

Falamos que a posição [0] aponta para um array de 3 posições e a posição [1] aponta para um array de 2 posições. Porém o array "principal" ainda tem length 2

Sendo assim:

System.out.println(array.length); // 2
System.out.println(array[0].length); // 3
System.out.println(array[1].length); // 2

Então a soma de array.length + array[1].length dá 4

ótima explicação, Guilherme ! acabei percebendo isso fazendo varios debug rs muito bom