2016-06-15 4 views
5

Map<String, MagicObject>に大量のストリングを保存したいので、MagicObjectsにすばやくアクセスできます。このマップには非常に多くのエントリがあり、メモリがボトルネックになっています。 MagicObjectsを最適化できないとすれば、この状況で使用できる最も効率的なマップの種類は何ですか?私は現在、以下を使用しています:多数の文字列をマップに格納する最もメモリ効率の良い方法は何ですか?

gnu.trove.map.hash.TCustomHashMap<byte[], MagicObject> 
+0

別のマップが突然メモリーを少なくすると私は驚くかもしれませんが、メモリー使用量を最適化するアプリに慣れているわけではありません。 –

+2

データ構造を切り替えることによってJVMメモリモデルを変更することはありません。 – duffymo

+0

なぜTHashMapはありませんか? –

答えて

2

あなたの鍵は、共通の接頭辞をたくさん持っているなら、あなたはtrie(プレフィックスツリー)データ構造を使用してメモリを節約することができます。 this questionへの回答は、いくつかのJava実装のトライを指しています。

1

Huffman codingは、 を入力する前に、文字列が固定されている限り(数字と文字列の内容は変更されない限り)文字列を圧縮することを検討してください。

関連する問題