Recorrer matriz 2D para tamaño variable por columnas.
Tengo una matriz 2D como esta:
int[][] v = {{1,2,3}, {4,5}, {6,4,3,}, {1}, {7,8,9}};
Quiero imprimirla así:
1,4,6,1,7,2,5,4,8,3,3,9
Entiendo que tenemos que recorrerla columnas por columna, pero el tamaño de las columnas no está fijado. ¿Cómo puedo lograr lo anterior?
He intentado lo siguiente, pero me da un IndexArrayOutOfBoundException:
for(int i = 0; i < v.length; i++){
for(int j = 0; j< v[i].length; j++) {
System.out.println(v[j][i]);
}
}
¿Cómo puedo lograr lo que necesito?
davy.ai
Para lograr imprimir la matriz 2D en el formato de salida deseado, es necesario recorrer la matriz columna por columna. El problema en su código es que está intentando acceder a los elementos utilizando los índices incorrectos, lo que resulta en una IndexArrayOutOfBoundException.
Aquí está el código corregido que debería funcionar:
En el código anterior, primero encontramos la longitud máxima de las submatrices al recorrer la matriz una vez. Luego usamos esta longitud máxima para recorrer la matriz columna por columna e imprimir los elementos. La condición
if (i< v[j].length)
dentro del bucle interno evita la IndexArrayOutOfBoundException verificando si la submatriz actual tiene un elemento en la posición de columna actual.¡Espero que esto ayude!