#java #arrays #multidimensional-array
#java #массивы #многомерный массив
Вопрос:
Я пытаюсь создать float
массив I
таким образом, чтобы его элементы содержали массивы 2, 3, 4 и 5 измерений:
I: [0][1052] [1052]
[1][N] [185] [185]
[2][N] [N] [34] [34]
[3][N] [N] [N] [6] [6]
Где N
— некоторая константа, я еще не решил. Например, I[0]
ссылается на a float[][]
, но I[1]
ссылается на a float[][][]
.
Предполагается, что это иерархия квадратов данных, которые связаны друг с другом. Другими словами, это похоже на файловую систему, где каждая папка содержит N
больше дочерних папок.
Есть ли способ, которым я могу выполнить это, помимо объявления I
с 6 измерениями или с использованием 4 отдельных массивов?
Ответ №1:
Массив — это объект. Таким образом, вы можете создать массив объектов и хранить в нем массивы 1D, 2D или 100D:
Object[] arr = new Object[3];
arr[0] = new float[][]{}; //2D
arr[1] = new float[][][][]{}; //4D
arr[2] = new float[]{}; //1D
Недостатком является то, что это не помешает вам хранить многомерные массивы, отличные от float:
arr[0] = new String[][]{};
arr[1] = new Object[]{};
arr[2] = new Integer[][][]{};
Комментарии:
1. Что делает
{}
после[]
?2. @Petersen просто инициализирует массив ничем. Но вам это не понадобится, поскольку у вас уже есть эти массивы.
Ответ №2:
ПРИМЕЧАНИЕ: Это не очень хороший способ работы с массивами, особенно с многомерным массивом. В любом случае, если вы сделаете это таким образом,
Object[] I = new Object[4];
Затем вы можете сделать это,
I[0] = new float[2];
I[1] = new float[3];
I[2] = new float[4];
I[3] = new float[5];