0

整数値の 200 万配列を使用するプログラムを作成しました。ただし、一度に 200 個の配列しか使用しません。10,000 ブロック (GPS 値に従って分割) の地形を移動する 200 台のインテリジェントな車があります。各ブロックには、整数値を持つ 129x28 の配列があります。車が新しいブロックに移動すると、このブロックに関連する配列を取得し、その配列の値を使用する必要があります。次に、その値に基づいて決定を下し、次に進みます。したがって、200 台の車と 10,000 ブロックのシステム全体で、各車には独自の配列の個別の値がありますが、配列の総数は 200 万です。タイムスロットで各車の 1 つの配列を取得するだけで済みます = 一度に 200 の配列

配列はアプリケーションによって作成され、開始時にゼロで埋められます。その後、アプリケーションはそれらの配列への埋め込みを開始し、最終的にはそれらの配列のみを使用します。そのため、プログラムでこれらの配列を作成するコードを書きました。

配列を HD 上のファイルに保存して、必要なときに取得することはできませんか?

アップデート

200 万のアレイがあり、1 ~ 1.9 秒で 200 のアレイを格納および取得できないため、使用する環境機能を減らすために研究を格下げし、サイズ 7 x 28 の 200 万のアレイを使用することになりました。 * 28 * 10 000 * 4 (整数) * 200 (車) バイトで、RAM の場合は 1.6 GB しか消費しません。同様の問題が発生している場合は幸運を祈ります。同様の状況にある場合は PM までお問い合わせください。お役に立てれば幸いです。

4

1 に答える 1

2

かなり簡単な解決策の 1 つは、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 に答える