Matriz 3x3 ou 3x5

Amigos,

Por que na matriz abaixo retorna 3x3 ao invés de 3x5? Eu teria que ter todas as colunas da primeira linha preenchida para isso, mesmo tendo a segunda e terceira linha preenchidas com 5 colunas?

public class C0906Matriz {

public static void main (String[] args) {

  char[][] ch = {{'A','B','C'}, {'a','b','c','d','e'},{'1','2','3','4','5'}};
  
  System.out.println("Conteúdo da matriz ch:");
  
  for (int i = 0; i < ch.length; i++) {
  	for (int j = 0; j < ch[i].length; j++) {
  		System.out.print("ch["+i+"]["+j+"] = "+ch[i][j]+"\t");
  	}
  	System.out.println();
  }
  
  System.out.println("Posições: " + ch.length+ "x" + ch[0].length);

}
}

Entendo que a representação da matriz acima seria:

A B C
a b c e e
1 2 3 4 5

Logo 3x5 na minha concepção.

Confesso também que não entendi o argumento na parte destacada abaixo. O que seria esse “0” entre colchetes?

System.out.println("Posições: " + ch.length+ “x” + ch[0].length);

Obrigado.

Um array bi-dimensional nada mais é do que um array de arrays.
O seu println está exibindo o tamanho da primeira dimensão e o tamanho do array na primeira posição dessa dimensão e realmente ele só possui 3 colunas.
Os arrays da posição 1 e 2 possuem tamanho 5.

1 curtida

Super entendido. Obrigado.