HashMap<Integer, SomeType>()
を100万を超えるエントリで使用しています。私はそれが大きいと考えています。メモリ使用量を改善しました。IntegerHashMap
しかし、整数は独自のハッシュコードです。 Integer
オブジェクトへのポインタの代わりにintを直接使用して、特別なMap.Entry
を使用するメモリ、たとえばIntegerHashMap<Integer, SomeType>()
を保存できませんでしたか?私たちの場合、これはInteger
オブジェクトに必要なメモリを1000000x節約します。
私の考えの欠陥はありますか?一般的に興味があるのはあまりにも特別ですか? (少なくとも、EnumHashMap
があります)
add1です。 IntegerHashMap
という第1の汎用パラメータは、他のMap
の実装とよく似ています。もちろん、それは落とすことができます。
add2。他の地図やコレクションでも同じことが可能です。たとえば、注意のToIntegerHashMap<KeyType, Integer>
、IntegerHashSet<Integer>
など
JDK/Apacheコモンズの一部としてのプリミティブコレクションの(任意の)実装/グワバ。残念ながら、追加ライブラリを使用することは容易ではありません。スピードは私の心配ではなく、記憶です。それにもかかわらず、あなたの答えはおそらく私が得ることができるほど近いです。 –