Java - Arreglos multidimensionales no cuadrados

 
Vista:

Arreglos multidimensionales no cuadrados

Publicado por Lesly (2 intervenciones) el 06/05/2021 22:38:02
Hola necesito ayuda para imprimir un arreglo con distintas filas y columnas por renglón
mi código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static void main(String[] args) {
    // TODO code application logic here
    int matrix[][];
    matrix = new int [6][];
    matrix[0] = new int [5];
    matrix[1] = new int [2];
    matrix[2] = new int [4];
    matrix[3] = new int [7];
    matrix[4] = new int [3];
    matrix[5] = new int [6];
 
 
   matrix[0][0]=4;  matrix[1][0]=3; matrix[2][3]=8; matrix[3][4]=5; matrix[4][2]=4;
   matrix[0][1]=7;  matrix[1][1]=1; matrix[3][0]=4; matrix[3][5]=3; matrix[5][0]=2;
   matrix[0][2]=2;  matrix[2][0]=9; matrix[3][1]=1; matrix[3][6]=2; matrix[5][1]=1;
   matrix[0][3]=6;  matrix[2][1]=6; matrix[3][2]=0; matrix[4][0]=8; matrix[5][2]=9;
   matrix[0][4]=1;  matrix[2][2]=2; matrix[3][3]=1; matrix[4][1]=6; matrix[5][3]=0;
   matrix[5][4]=3;  matrix[5][5]=2;
 
    for(int i[] : matrix)
    {
        System.out.print(i[0]);
    }
}

pero esto solo me imprime los de la columna 0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Arreglos multidimensionales no cuadrados

Publicado por Kabuto (1381 intervenciones) el 07/05/2021 00:28:10
Hazlo de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static void main(String[] args) {
 
    int matrix[][];
    matrix = new int [6][];
    matrix[0] = new int [5];
    matrix[1] = new int [2];
    matrix[2] = new int [4];
    matrix[3] = new int [7];
    matrix[4] = new int [3];
    matrix[5] = new int [6];
 
 
    matrix[0][0]=4; matrix[1][0]=3; matrix[2][3]=8; matrix[3][4]=5; matrix[4][2]=4;
    matrix[0][1]=7; matrix[1][1]=1; matrix[3][0]=4; matrix[3][5]=3; matrix[5][0]=2;
    matrix[0][2]=2; matrix[2][0]=9; matrix[3][1]=1; matrix[3][6]=2; matrix[5][1]=1;
    matrix[0][3]=6; matrix[2][1]=6; matrix[3][2]=0; matrix[4][0]=8; matrix[5][2]=9;
    matrix[0][4]=1; matrix[2][2]=2; matrix[3][3]=1; matrix[4][1]=6; matrix[5][3]=0;
    matrix[5][4]=3; matrix[5][5]=2;
 
    for (int fila = 0; fila < matrix.length; fila++) {
        for (int col = 0; col < matrix[fila].length; col++)
            System.out.print(matrix[fila][col] + " ");
 
        System.out.println();//Salto de línea
    }
}

Resultado que me da en pantalla:
1
2
3
4
5
6
4 7 2 6 1
3 1
9 6 2 8
4 1 0 1 5 3 2
8 6 4
2 1 9 0 3 2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arreglos multidimensionales no cuadrados

Publicado por Lesly (2 intervenciones) el 07/05/2021 00:34:06
Y de alguna manera si podría utilizar el for-each?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Arreglos multidimensionales no cuadrados

Publicado por Kabuto (1381 intervenciones) el 09/05/2021 00:39:08
En todo caso, usando dos for -each anidados

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static void main(String[] args) {
 
    int matrix[][];
    matrix = new int [6][];
    matrix[0] = new int [5];
    matrix[1] = new int [2];
    matrix[2] = new int [4];
    matrix[3] = new int [7];
    matrix[4] = new int [3];
    matrix[5] = new int [6];
 
 
    matrix[0][0]=4; matrix[1][0]=3; matrix[2][3]=8; matrix[3][4]=5; matrix[4][2]=4;
    matrix[0][1]=7; matrix[1][1]=1; matrix[3][0]=4; matrix[3][5]=3; matrix[5][0]=2;
    matrix[0][2]=2; matrix[2][0]=9; matrix[3][1]=1; matrix[3][6]=2; matrix[5][1]=1;
    matrix[0][3]=6; matrix[2][1]=6; matrix[3][2]=0; matrix[4][0]=8; matrix[5][2]=9;
    matrix[0][4]=1; matrix[2][2]=2; matrix[3][3]=1; matrix[4][1]=6; matrix[5][3]=0;
    matrix[5][4]=3; matrix[5][5]=2;
 
    for (int[] fila: matrix) {
        for (int valor: fila) {
            System.out.print(valor + " ");
        }
        System.out.println();//Salto de línea
    }
 
    }


Otra alternativa para usar solo UN for-each, es ayudarse de la clase Arrays

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.Arrays;
 
public class Main
{
    public static void main(String[] args) {
 
        int matrix[][];
        matrix = new int [6][];
        matrix[0] = new int [5];
        matrix[1] = new int [2];
        matrix[2] = new int [4];
        matrix[3] = new int [7];
        matrix[4] = new int [3];
        matrix[5] = new int [6];
 
 
        matrix[0][0]=4; matrix[1][0]=3; matrix[2][3]=8; matrix[3][4]=5; matrix[4][2]=4;
        matrix[0][1]=7; matrix[1][1]=1; matrix[3][0]=4; matrix[3][5]=3; matrix[5][0]=2;
        matrix[0][2]=2; matrix[2][0]=9; matrix[3][1]=1; matrix[3][6]=2; matrix[5][1]=1;
        matrix[0][3]=6; matrix[2][1]=6; matrix[3][2]=0; matrix[4][0]=8; matrix[5][2]=9;
        matrix[0][4]=1; matrix[2][2]=2; matrix[3][3]=1; matrix[4][1]=6; matrix[5][3]=0;
        matrix[5][4]=3; matrix[5][5]=2;
 
        for (int[] fila: matrix) {
            System.out.println(Arrays.toString(fila));
        }
 
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar