何时使用ArrayMap、SparseArray代替HashMap?

来源:-

攻城狮ZSP

2017-03-08 09:15

何时使用ArrayMap、SparseArray代替HashMap?

写回答 关注

1回答

  • 攻城狮ZSP
    2017-03-08 09:16:22

    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

    详见:

    http://blog.csdn.net/u010687392/article/details/47809295

APP性能优化之内存优化

内存优化的原理,实战并有代码演示

17717 学习 · 15 问题

查看课程

相似问题