0

我编写了一个使用 200 万个整数值数组的程序。但是,它一次只使用 200 个数组。我有 200 辆智能汽车在 10 000 个街区的地形上行驶(根据 GPS 值划分)。每个块都有一个包含整数值的 129x28 数组。当任何汽车移动到一个新块时,它必须检索与该块相关的数组,然后使用该数组中的值。然后它根据该值做出决定,然后继续前进,依此类推。所以整个系统有 200 辆汽车和 10000 个区块,而每辆汽车都有自己的数组不同值,数组的总数是 200 万。我需要在一个时间段简单地检索每辆车的 1 个数组 = 一次 200 个数组

数组将由应用程序创建并在开始时用零填充,然后应用程序将开始填充这些数组,最后它只会使用它们。所以我写了一个代码来在程序中创建这些数组。

我不能将数组存储在高清文件中并在需要时检索它们吗?

更新

由于我有 200 万个数组,并且无法在 1-1.9 秒内存储和检索 200 个数组,因此我将研究降级为使用较少的环境特征,最终使用了 200 万个大小为 7 x 28 的数组。其中使用了 7 * 28 * 10 000 * 4(整数)* 200(汽车)字节,如果 RAM 仅消耗 1.6 GB。如果你有类似的问题,祝你好运,如果你有类似的情况,请 PM,我希望我能提供帮助。

4

1 回答 1

2

一种相当简单的解决方案是使用 ObjectOutputStream 和 ObjectInputStream 类来写入和读取您的数组。

下面是一些将数组写入磁盘的示例代码:

    int [][] array = new int [129] [28];
    // fill in your array here
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fileName));
    out.writeObject(array);
    out.close();

下面是一些示例代码,用于从磁盘读取先前保存的数组:

    ObjectInputStream in = new ObjectInputStream(new FileInputStream(fileName));
    int [] [] inArray = (int [] []) in.readObject();
    in.close();
于 2012-05-02T00:57:33.993 回答