我们使用HashMap< Integer,SomeType>(),其中包含超过一百万个条目.我认为这很大.
但是整数是他们自己的哈希码.我们不能用一个使用特殊Map.Entry的IntegerHashMap< Integer,SomeType>()来保存内存,直接使用int而不是指向Integer对象的指针?在我们的例子中,这将节省1000000x Integer对象所需的内存.
我思路上的任何错误?对于普遍感兴趣太特别了? (至少有一个EnumHashMap)
ADD1. IntegerHashMap的第一个泛型参数用于使其与其他Map实现非常相似.当然可以放弃它.
ADD2.其他地图和集合也应该如此.例如ToIntegerHashMap< KeyType,Integer>,IntegerHashSet< Integer>等.
解决方法:
您正在寻找的是“原始收藏”库.它们通常在内存使用和性能方面要好得多.最古老/最受欢迎的图书馆之一被称为“Trove”.但是,它现在有点过时了.现在使用的主要活动库是:
标签:java,dictionary
来源: https://codeday.me/bug/20190627/1307841.html
文章探讨了在Java中使用HashMap时,如何通过创建特定的IntegerHashMap来节省内存,特别是当处理大量Integer对象时。作者建议使用原始类型集合,如Trove库,以提高内存效率和性能。这种优化可以减少百万级条目映射中每个Integer对象的内存消耗。
5万+

被折叠的 条评论
为什么被折叠?



