Длины многомерных массивов в Java

#java #arrays #multidimensional-array

#java #массивы #многомерный массив

Вопрос:

Как найти длины многомерного массива с неравными индексами?

Например, у меня есть int[][] pathList = new int[6][4]

Без фактического жесткого кодирования индексов мне нужно найти ‘6’ и ‘4’.

Я могу найти 6 с помощью pathList.length , но как получить ‘4’?

Комментарии:

1. Ключ к пониманию ответа на этот вопрос заключается в понимании того, что многомерный массив — это массив из массивов, то есть массив, где каждый элемент, в свою очередь, находится в массиве.

Ответ №1:

Это даст вам длину массива по индексу i

 pathList[i].length
  

Важно отметить, что в отличие от C или C , длина элементов двумерного массива в Java не обязательно должна быть равной. Например, когда pathList создается экземпляр, равный new int[6][] , он может содержать 6 int [] экземпляров, каждый из которых может иметь разную длину.


Итак, когда вы создаете массивы так, как вы показали в своем вопросе, вы также можете сделать

  pathList[0].length
  

поскольку вы знаете, что все они имеют одинаковую длину. В других случаях вам необходимо определить, конкретно для вашего приложения, что означает длина второго измерения — это может быть максимальная из длин всех элементов или, возможно, минимальная. В большинстве случаев вам потребуется перебрать все элементы и прочитать их длины, чтобы принять решение:

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

Ответ №2:

Это для трехмерного массива.

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

ВЫВОД :
5 8 10

Комментарии:

1. Я не был уверен в более высоких измерениях, поэтому я протестировал это: Для 4-мерного массива: System.out.println(x.length " " x[1].length " " x[0][1].length " " x[0][0][1].length); следовательно, чтобы получить длину (количество элементов) в i ‘-й строке n -мерного массива (с n>2 ), нужно ввести: <arrayname> , за которым следует n-2 из следующих символов: [0] , за которым следует `[1].длина.

Ответ №3:

Java имеет «неровные» многомерные массивы, что означает, что каждая «строка» в вашем двумерном массиве может иметь разное количество компонентов. Если вы можете предположить, что каждая строка имеет одинаковое количество компонентов, используйте:

 pathList[0].length;
  

В противном случае вам придется выполнять итерации:

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

Ответ №4:

Для двумерного массива :-

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

РЕЗУЛЬТАТ: 6 12

Ответ №5:

pathList.length указывает количество строк. Это означает, что он выведет 6 для int[6][4]
pathList[i].length дает вам количество столбцов в i-й строке. Поскольку int[6][4] можно рассматривать как прямоугольник, он всегда будет выводить 4.

Ответ №6:

В Java мы можем определить массив массивов, которые мы называем многомерными массивами.Под массивом массивов мы подразумеваем, что отдельный элемент нашего массива снова является массивом (в java может иметь множественную длину).Чтобы найти длину множественного массива, имеющего все подмассивы одинакового размера, мы можем использовать:

 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.
  

Однако, если у вас есть подмассивы разных размеров, вам придется выполнить итерацию.

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

Ответ №7:

В Java мы не можем использовать поле длины, как мы привыкли к одномерным массивам. Итак, простое написание нескольких строк кода решает эту проблему. Во-первых, вам нужно знать, что выходные данные поля Length в многомерных массивах — это количество строк.Я имею в виду, когда у вас есть приведенный ниже массив

int[][] числа = {{1,2,3,4,2,6},{4,5,6,7}};

результат System.out.println(numbers.length); равен 2, потому что у вас есть 2 строки. Итак, вы должны использовать это для решения этой проблемы. Пример:

 public class Main {

public static void main(String[] args) {

    //Array definition
    int[][] numbers = {{1,2,3,4,2,6},{4,5,6,7}};

    //Number of array's elements
    int result = 0;

    //calculate via loop
    for(int i=0; i< numbers.length; i  ){
        result  =  numbers[i].length;
    }

    //output
    System.out.println(result);
}
  

}

Ответ №8:

Вы можете найти ‘4’, используя список путей[i].длина

Пожалуйста, поправьте меня, если я ошибаюсь, поскольку я новичок и это помогло бы мне лучше понять Java. Следующий код может помочь вам в понимании.

 public class Main {

    public static void main(String[] args) {


        int num[][] = new int[1][3];
        for (int i = 0; i < num.length; i  ) {
            for (int j = 0; j < num[i].length; j  ) {
                num[i][j] = 10;
                System.out.println("num ["   i   "] ["   j   "] = "   num[i][j]);
            }
        }
    }
}
  

Ответ №9:

длина трехмерного массива

 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);