攻城狮ZSP
2017-03-08 09:15
何时使用ArrayMap、SparseArray代替HashMap?
hashMap默认容量16,装载因子0.75,超过装载因子容量自动翻倍,这个过程要重组数组结构,比较费时和费内存。所以如果动态加载大量数据时要注意。但查找数据正常时快于以下两个,因为hash是直接定位,而下面两个是二分法查找。
所以,如果是装载静态字典,继续用HashMap。
满足下面两个条件我们可以使用SparseArray代替HashMap:
数据量不大,最好在千级以内
key必须为int类型,这中情况下的HashMap可以用SparseArray代替:
SparseArray和ArrayMap都差不多,使用哪个呢?
假设数据量都在千级以内的情况下:
1、如果key的类型已经确定为int类型,那么使用SparseArray,因为它避免了自动装箱的过程,如果key为long类型,它还提供了一个LongSparseArray来确保key为long类型时的使用
2、如果key类型为其它的类型,则使用ArrayMap
详见:
APP性能优化之内存优化
17717 学习 · 15 问题
相似问题