Cómo encontrar la longitud de una matriz multidimensional con la no igualdad de índices?

Por ejemplo, tengo int[][] pathList = new int[6][4]

Sin codificar los índices, necesito encontrar el ‘6’ y el ‘4’.

Puedo encontrar la 6 con pathList.length, pero cómo obtener el ‘4’?

  • La clave para entender la respuesta a esto está en la comprensión de que una matriz multidimensional es una matriz de matrices, es decir, una matriz donde cada elemento es a su vez en una matriz.

6 Comentarios

  1. 57

    Esto le dará la longitud de la matriz en el índice de i

    pathList[i].length

    Es importante tener en cuenta que a diferencia de C o C++, la longitud de los elementos de una matriz de dos dimensiones en Java no tiene que ser igual. Por ejemplo, cuando pathList se crea una instancia de igual a new int[6][], que puede contener 6 int [] instancias, cada una de las cuales puede ser una longitud diferente.


    Así que cuando usted crear matrices de la forma en que ha demostrado en su pregunta, usted puede también hacer

     pathList[0].length

    ya que usted sabe que todos ellos tienen la misma longitud. En los otros casos, es necesario definir, específico para su aplicación exactamente lo la longitud de la segunda dimensión medio – podría ser la máxima de las longitudes de todos los elementos, o tal vez por la mínima. En la mayoría de los casos, usted necesitará para iterar sobre todos los elementos y leer sus longitudes a tomar una decisión:

    for(int i = 0; i < pathList.length; i++)
    {
        int currLen = pathList[i].length;
    }
  2. 11

    Esta es una de 3 dimensiones de la matriz.

     int x[][][]=new int[5][8][10];
            System.out.println(x.length+" "+x[1].length+" "+x[0][1].length);

    De SALIDA :
    5 8 10

    • Gracias, voy a guardar esta distancia.
    • Yo no estaba seguro acerca de las dimensiones superiores, por lo que he probado: Para una 4ta dimensión de la matriz: System.out.println(x.length+" "+x[1].length+" "+x[0][1].length+" "+x[0][0][1].length);, por lo tanto, para obtener la longitud (número de elementos) en la i‘th fila de un ndimensiones de la matriz (con n>2), uno de los tipos: <arrayname> seguido por el n-2 de los siguientes caracteres: [0] seguido por» [1].longitud.
  3. 8

    Java tiene «irregulares» matrices multidimensionales, lo que significa que cada «fila» en su matriz de dos dimensiones puede tener un número diferente de componentes. Si se puede asumir que cada fila tiene el mismo número de componentes, uso:

    pathList[0].length;

    De lo contrario, usted tendrá que recorrer:

    int maxRowLength = 0;
    for (int i = 0; i < pathList.length; i++) {
        if (maxRowLength < pathList[i].length) {
            maxRowLength = pathList[i].length;
        }
    }
  4. 4

    Para 2 D de la matriz :-

    int x[][] = new int[6][12];
    System.out.println(x.length + " " + x[1].length);

    De SALIDA : 6 de 12

  5. 1

    En java podemos definir la matriz de matrices que llamamos multi dimensional arrays.By matriz de matrices, nos referimos a que una sola elment de nuestra matriz es de nuevo una matriz (en java pueden ser de varios de longitud).Para encontrar la longitud de multi matriz de tener todos los subarray del mismo tamaño,podemos usar:

    int[][]a=new int[3][3];//let a[][] be my array
    a.length will work.   //a is an object of proxy class and length is its property.

    Sin embargo,si usted tiene subarrays de diferentes tamaños, a continuación, usted tiene que recorrer la misma.

    for(i=0;i<a.length;i++)
            int cur_size=a[i].length;
  6. 0

    3-D de la matriz de longitud

    int[][][] a = new int[2][3][7];
    int length=0;
    for(int[][] i:a){
        for(int j[]:i){
            length+=j.length;
        }   
    }           
    System.out.println(length);

Dejar respuesta

Please enter your comment!
Please enter your name here