1

JDBM2 (JDBM2 の初めてのユーザー) を使用して保持したい大きなマップがあります。

JDBM2 デモ プログラムにいくつかの簡単な編集を加えました。ただし、保存された値を抽出すると、ClassCast Exceptions が発生します。

これがコードです。どんな助けでも大歓迎です。

[また、この方法で JDBM2 を使用することは可能ですか。例は、ビルド、クローズ、再オープン、使用しません。彼らは構築し、使用し、閉じる]

public static void main(String[] args) throws IOException {

    /** open db */
    RecordManager recman = RecordManagerFactory.createRecordManager("hugedata");
    PrimaryTreeMap<String, double[][]> db = recman.treeMap("hugemap");

    /** insert some records */
    int aBigNumber = 1000;
    int aSmallerNumber = 100;
    for (long i = 0; i < aBigNumber; i++) {

        db.put(Long.toString(i), new double[9][9]);

        if (i % aSmallerNumber == 0) {
            /** Commit periodically, otherwise program would run out of memory */
            recman.commit();
            System.out.println(i);
        }
    }

    recman.commit();
    recman.close();

    //now that the database is built we need to load it from file...otherwise we are cheating

    //open the database to use it...
    recman = RecordManagerFactory.createRecordManager("hugedata");
    PrimaryTreeMap<String, double[][]> revivedDB = recman.treeMap("hugemap");

    //ClassCastException thrown here
    double[][] aStoredValue = revivedDB.get(Long.toString(10));

    recman.close();

    System.out.println("DONE");

}
4

0 に答える 0