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");
}