需要一种存储4D阵列的方法

时间:2014-12-21 01:31:44

标签: java multidimensional-array

为了简化问题,让我们想象一下我们存储了一个:

int[][][][] values = new int[10][10][10][10];

我目前正在寻找生成值的表格,以后可供计算机(而不是某个人)查找。这些值基本上是情况的分数。因此,例如,如果我们想要看到第一个分量为2的分数,则第二个为3,第三个分数为7,第四个分数为9,那么我们可以在文件中转到[2] [3] [7] [9]必须在运行中计算价值。

我理解写入和阅读文件的技术细节,但我很难理解如何做到这一点。

让我们说一个2D数组,我想找到[X] [Y]的值,然后我就可以读取和写入值为X的行和值为Y的列。

然而,对于3或甚至4 D阵列,我们如何将这些值存储在文本文件中,这样我们就不必每次运行程序时都生成数组?

2 个答案:

答案 0 :(得分:1)

将此文件保存到文件的最简单方法是使用Serializable接口,该接口已经在原始类型中实现(根据this post

示例:

int[][][][] data = new int[10][10][10][10];

// Write object to a file
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("serializedArray.data")));
oos.writeObject(data);
oos.flush();
oos.close();

// Read an object from a file
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("serializedArray.data")));
Object obj = ois.readObject();
ois.close();

// Cast it back to an int array
data = (int[][][][])obj;

答案 1 :(得分:0)

Java是一种基于类的面向对象语言。恕我直言,你应该按照它的方式使用它。 制作一个包含4个字段的对象或二次菱形类:

class Quad<A, B, C, D>

我再说一遍,这是我的诚实意见,群众反对INC。