Подтвердить что ты не робот

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

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

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

Без собственно жесткого кодирования индексов мне нужно найти "6" и "4".

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

4b9b3361

Ответ 1

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

pathList[i].length

Важно отметить, что в отличие от 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

Ответ 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

Для массива 2 D: -

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

ВЫХОД: 6 12

Ответ 5

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

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;