Android何时使用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

你可能感兴趣的:(Android何时使用ArrayMap、SparseArray代替HashMap?)