在Java中创建一个多维(4d)数组,每个元素中都有唯一的对象

时间:2018-04-14 22:28:03

标签: java arrays multidimensional-array

我试图用Java在另一个2d数组中创建一个二维数组对象。该数组是8乘8,因此需要将64个对象初始化为数组。虽然这听起来很乏味,但我必须这样做64次...而且,为了使它更加困难,每个2d阵列中特定对象的位置是不同的,所以我不能只使用一个简单的循环。

所以我的主要问题是,有没有人能够想到这会让我加快初始化2d阵列中每个插槽的过程?方法?循环?什么?

大约有10个唯一对象将被放置在2d数组的指定插槽中,其中一个是整个阵列中最常见的特定对象。

我目前打算这样做的方法是让一个2d数组为8乘8的类,并使用构造函数加载对象,并将它们放入数组中。然后我会这样做64次,为我的2d数组的大型2d数组中的每个元素创建一个唯一的2d对象数组(我想这会使它成为一个4d数组?) 这是我计划遵循的代码的一般概念:

public class Books{ 
private items[][] layout = new items[8][8];
public Books(items a1, items a2, items a3, items a4, items a5, items a6, items a7, items a8, items a9, items a10 etc. etc.){ 
layout[0][0] = a1; layout[0][1] = a2; layout[0][2] = a3; layout[0][4] = a4; layout[0][5] = a5; etc. etc. }

正如你所看到的,这已经非常繁琐了,而且,我必须在我的主要课程中初始化每本书:

Books[][] bks = new books[8][8];
bks[0][0] = Books(i1, i2, i1, i4, i1, i1, i1, i8, i9, etc. etc.);
bks[0][1] = Books(i7, i1, i8, i1, i4, i2, i7, i1, i1, etc. etc.);

有什么方法可以让我的生活更轻松吗?或者我注定要在我的程序中手动输入4096(64 * 64)个对象?

1 个答案:

答案 0 :(得分:0)

创建一个对象2D数组,并用二维数组填充它。在内部2D阵列上执行功能时,请务必进行投射。到2D数组。例如,我可以有一个gameButtons 2D对象数组,里面有一个JButtons的2D数组。我愿意:

for (int i = 0; i < gameButtons.length; i++)
    for (int j = 0; j < gameButtons[i].length; j++)
        for (int k = 0; k < ((JButton[][]) gameButtons[i][j]).length; k++)
            for (int l = 0; l < ((JButton[][]) gameButtons[i][j])[k].length; l++)
                ((JButton[][]) gameButtons[i][j])[k][l] = new JButton();