Java: проблема многомерного массива - PullRequest
0 голосов
/ 06 сентября 2011

В многомерном массиве можно ли использовать переменную длины для измерения других размеров, кроме первого?

Ответы [ 4 ]

3 голосов
/ 06 сентября 2011

Да.Размеры длины варьируются от ряда к ряду.Вы можете сделать matrix[i].length, чтобы получить длину строки i.Если вы знаете, что матрица квадратная, длина всех строк в любом случае будет равна matrix[0].length, поэтому это не имеет значения.

Если вы пытаетесь перебрать все элементы:

for(int i = 0; i < matrix.length; i++){
    for(int j < 0; j < matrix[i].length; j++){
        count += matrix[i][j];
    }
}

Тот же принцип может применяться для любого количества измерений.Для циклов требуется 1 вложенный цикл на измерение.Для длин каждая заключенная в скобки часть фактически является новым элементом, поэтому массив 3d ar даст массив 2d с ar[i], 1d с ar[i][j] и 0d (один элемент типа массива) с ar[i][j][k]

2 голосов
/ 06 сентября 2011

Да.

@Test
public void test(){
    long[][][] multi = new long[3][2][1];
    System.out.println(multi.length); //3
    System.out.println(multi[0].length); //2
    System.out.println(multi[0][0].length); //1
}
0 голосов
/ 06 сентября 2011

Ну, нет, вам нужно array[0].length, чтобы получить размер второго измерения, и array[0][0].length, чтобы получить длину третьего измерения.Конечно, массивы не являются матрицами, поэтому array[0].length и array[1].length могут отличаться в зависимости от размеров подмассивов, которые вы сохранили в array[0] соответственно.array[1]

0 голосов
/ 06 сентября 2011

Конечно.

array.length;
array[0].length;
array[1].length;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...