Длина многомерных массивов в Java - PullRequest
26 голосов
/ 11 мая 2011

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

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

Без реального кодирования индексов мне нужно найти«6» и «4».

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

Ответы [ 6 ]

57 голосов
/ 11 мая 2011

Это даст вам длину массива с индексом 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;
}
11 голосов
/ 20 ноября 2014

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

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

ВЫХОД: 5 8 10

8 голосов
/ 11 мая 2011

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 голосов
/ 20 апреля 2015

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

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

ВЫХОД: 6 12

1 голос
/ 31 декабря 2015

В 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;
0 голосов
/ 09 августа 2018

3-D длина массива

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...