Я пытаюсь решить полупростую проблему, в которой я пытаюсь создать массив и вернуть 3-мерный массив на основе параметра, который оказывается равным 2 мерный массив int. Массив, который я пытаюсь вернуть, представляет собой массив String из трех измерений. Так вот код:Создание многомерного массива String из параметра массива метода
public class Displaydata {
static String[][][] makeArray(int[][] dimensions) {
String myArray[][][];
for (int i = 0; i < dimensions.length; i++) {
for (int j = 0; j < dimensions[i].length; j++) {
myArray[][][] = new String[i][j][]; //getting error here.
}
}
return myArray;
}
static void printArray(String[][][] a) {
for (int i = 0; i < a.length; i++) {
System.out.println("\nrow_" + i);
for (int j = 0; j < a[i].length; j++) {
System.out.print("\t");
for (int k = 0; k < a[i][j].length; k++)
System.out.print(a[i][j][k] + " ");
System.out.println();
}
}
}
public static void main(String[] args) {
int [][] dim = new int[5][];
dim[0] = new int[2];
dim[1] = new int[4];
dim[2] = new int[1];
dim[3] = new int[7];
dim[4] = new int[13];
dim[0][0] = 4;
dim[0][1] = 8;
dim[1][0] = 5;
dim[1][1] = 6;
dim[1][2] = 2;
dim[1][3] = 7;
dim[2][0] = 11;
for (int i = 0; i < dim[3].length;i++)
dim[3][i] = 2*i+1;
for (int i = 0; i < dim[4].length;i++)
dim[4][i] = 26- 2*i;
String[][][] threeDee = makeArray(dim);
printArray(threeDee);
}
}
Как вы можете видеть из исходного кода, я получаю сообщение об ошибке при попытке создать экземпляр моего 3-мерного массива, который я пытаюсь вернуться. Я должен создать трехмерный массив с числом строк верхнего уровня, определяемым длиной измерений, и для каждой строки i верхнего уровня число строк второго уровня определяется длиной измерений [i ]. Количество столбцов в строке второго уровня j строки i верхнего уровня определяется значением измерений [i] [j]. Значение каждого элемента массива представляет собой конкатенацию индекса строки верхнего уровня с индексом строки второго уровня с индексом столбца, где индексы представлены буквами: «A» для 0, «B» для 1 и т. Д. (Из Конечно, это будет справедливо только в том случае, если индексы не превышают 25.) Я не обязательно знаю, где я ошибаюсь. Благодаря!
«Я получаю сообщение об ошибке, когда ...» «Какая ошибка? Можете ли вы опубликовать стек? – csmckelvey
Приветствия takendarkk, нет трассировки стека, потому что программа не компилируется. Я не знаю, что я делаю неправильно, чтобы предотвратить компиляцию. Если у вас есть какие-либо положительные идеи поделиться, пожалуйста, сделайте. Благодаря! – Linuxn00b
Что такое ошибка компиляции? – csmckelvey