Инициализация многомерного массива в Java

double signof(double a) { return (a == 0) ? 0 : (a<0 ? -1 : 1); }
78
задан Peter Mortensen 4 December 2013 в 19:49
поделиться

3 ответа

Попробуйте заменить соответствующие строки на:

myStringArray[0][x-1] = "a string";
myStringArray[0][y-1] = "another string";

Ваш код неверен, потому что подмассивы имеют длину y , а индексирование начинается с 0. Поэтому установка на myStringArray [0] [y] или myStringArray [0] [x] завершится ошибкой, потому что индексы x и y находятся вне границы.

String [] [] myStringArray = new String [x] [y]; - правильный способ инициализировать прямоугольный многомерный массив. Если вы хотите, чтобы он был зубчатым (каждый подмассив потенциально имеет разную длину), вы можете использовать код, аналогичный в этом ответе . Обратите внимание, однако, что утверждение Джона о том, что вы должны создавать подмассивы вручную, неверно в том случае, если вам нужен идеально прямоугольный многомерный массив.

63
ответ дан 24 November 2019 в 10:24
поделиться

Вы можете объявлять многомерные массивы, например:

// 4 x 5 String arrays, all Strings are null
// [0] -> [null,null,null,null,null]
// [1] -> [null,null,null,null,null]
// [2] -> [null,null,null,null,null]
// [3] -> [null,null,null,null,null]

String[][] sa1 = new String[4][5];
for(int i = 0; i < sa1.length; i++) {           // sa1.length == 4
    for (int j = 0; j < sa1[i].length; j++) {     //sa1[i].length == 5
        sa1[i][j] = "new String value";
    }
}


// 5 x 0  All String arrays are null
// [null]
// [null]
// [null]
// [null]
// [null]
String[][] sa2 = new String[5][];
for(int i = 0; i < sa2.length; i++) {
    String[] anon = new String[ /* your number here */];
    // or String[] anon = new String[]{"I'm", "a", "new", "array"};
    sa2[i] = anon;
}

// [0] -> ["I'm","in","the", "0th", "array"]
// [1] -> ["I'm", "in", "another"]
String[][] sa3 = new String[][]{ {"I'm","in","the", "0th", "array"},{"I'm", "in", "another"}};
13
ответ дан 24 November 2019 в 10:24
поделиться

Вы также можете использовать следующую конструкцию:

String[][] myStringArray = new String [][] { { "X0", "Y0"},
                                             { "X1", "Y1"},
                                             { "X2", "Y2"},
                                             { "X3", "Y3"},
                                             { "X4", "Y4"} };
59
ответ дан 24 November 2019 в 10:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: