我们使用HashMap<Integer, SomeType>()
以及超过一百万个条目。我认为这很大。改善内存使用情况:IntegerHashMap
但整数是他们自己的哈希码。难道我们不能通过使用特殊的Map.Entry
的IntegerHashMap<Integer, SomeType>()
来节省内存,直接使用int而不是指向Integer
对象的指针吗?在我们的例子中,这将节省1000000x的Integer
对象所需的内存。
我的思路有什么毛病?太特别是一般的兴趣? (至少有一个EnumHashMap
)
add1。第一个通用参数IntegerHashMap
用于使其与其他Map
实现非常相似。当然可以放弃它。
add2。其他地图和集合应该也是可以的。例如ToIntegerHashMap<KeyType, Integer>
,IntegerHashSet<Integer>
等
对我来说最适合的是作为JDK/Apache公共部分的原始集合的(任何)实现/番石榴。不幸的是,使用额外的库对我来说并不容易。而速度并不是我所关心的,而是记忆。尽管如此,你的答案可能和我所能得到的一样接近。 –