0

Javaプログラムでは、多くのレコードを一時的に保存する必要があります。1つのレコードは、キー、オブジェクト、および整数値で構成されます。処理の合計は数百万レコードになりますが、処理が完了した後、1つのレコードを削除する予定です...その後、別のレコードを挿入し、処理を行ってから削除します。の上...

メモリマップドIOの助けを借りてそのような値を保存する最良の方法は何ですか?

バイトバッファをマッピングするためのサンプルを見ることができますが、複数のレコードを保存してから取得するにはどうすればよいですか...ファイルストレージにレコードを追加するときに位置番号を保存し、これらを使用してデータを取得する必要がありますか?次に、位置番号を格納するために別の配列を作成する必要があります... JavaでメモリマップドIOを使用してデータを格納/取得する推奨される方法はありますか?

4

3 に答える 3

0

多分これはあなたが探しているものです:

http://code.google.com/p/vanilla-java/wiki/HugeCollections

于 2012-05-27T13:48:51.990 に答える
0

Hashmapを使用できます。これはrecords key/int pair、値に基づいて結合されたキーを作成できる場合、objectそれを保存しHashMap、一定時間の操作でhashMapから値を削除できます。


例:

    //Constructs a new empty HashMap with default initial capacity        
    HashMap hashMap = new HashMap();

    //Key would be combination of "record key/int pair"
    hashMap.put(Key1, new Integer(1)); 
    hashMap.put(Key2, new Integer(2));
    hashMap.put(Key3, new Integer(3));

    //You can remove values from HashMap in constant time using remove
    hashMap.remove(Key1);
于 2012-05-27T15:05:16.243 に答える
0

もう1つの方法は、WeakHashmaphttp://docs.oracle.com/javase/6/docs/api/java/util/WeakHashMap.htmlを使用することです

于 2012-05-30T14:28:35.327 に答える