0

私のプログラムは、何百万ものレコードをデータ コンテナーに挿入する必要があります。hashmaptreemapを試しました。JVMが2GBのRAMを使用できるようにしていますが、両方ともヒープスペースの例外が発生します。

私のプログラムはコンテナから特定のデータを頻繁に取得しますが、 O(logn) 時間がかかる場合は許容できると思います。では、どのコンテナを使用すればよいでしょうか。または、実装する必要がありますか?どのように?

詳細:キーは、グローバル ID のような文字列です。たとえば、"00011123459" などです。次に、キーはリストのリストにマップされますList<List<String>>。私のプログラムはファイルからreadLineを読み、次に行をリストに変更し、リストからグローバルIDを取得し、リストを対応するリストのリストに入れます。ファイルには数百万行以上の行が含まれているため、リストを作成しすぎたことが主な理由だと思います。ただし、マシンにメモリを追加することはできません。

4

4 に答える 4

0

javadocから。

This implementation provides guaranteed log(n) time cost for 
the containsKey, get, put and remove operations.

したがって、TreeMap を使用して、Java により多くのメモリを割り当てます。

于 2013-10-28T09:28:47.823 に答える