(有一些关于时间高效的稀疏数组的问题,但我正在寻找内存效率。)
我需要List<T>
或Map<Integer,T>
的等价物
只需设置一个比以前遇到的任何密钥都大的密钥,
null
的情况下,即当实际数据不是非常稀疏的情况下,键值与ArrayList<T>
的存储器效率一样高。HashMap<Integer,T>
库(最好是在有没有人知道这样一个实用类?
我曾期望Commons Collections会有一个,但它似乎没有。
我遇到了org.apache.commons.math.util.OpenIntToFieldHashMap
,它看起来几乎是正确的,除了值类型是一个FieldElement
,这似乎是多余的;我只想要T extends Object
。它看起来很容易编辑它的源代码,使其更通用,尽管我宁愿使用二进制依赖关系,如果可以的话。
发布于 2012-09-28 00:49:08
我会尝试使用trove集合,有TIntObjectMap可以满足你的意图。
发布于 2013-04-22 11:50:34
我会从安卓的SparseArray实现中寻找灵感。您可以在此处http://source.android.com/source/downloading.html下载AOSP的源代码来查看源代码
发布于 2012-09-28 01:08:53
我已经将我的测试用例保存为jglick/inthashmap。结果:
HashMap size: 1017504
TIntObjectMap size: 853216
IntHashMap size: 846984
OpenIntObjectHashMap size: 760472
https://stackoverflow.com/questions/12626135
复制相似问题