性能优化SparseArray

Posted 安卓笔记侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能优化SparseArray相关的知识,希望对你有一定的参考价值。

ArrayMap是一个<key,value>映射的数据结构,它设计上更多的是考虑内存的优化,内部是使用两个数组进行数据存储,一个数组记录key的hash值,另外一个数组记录Value值,它和SparseArray一样,也会对key使用二分法进行从小到大排序,在添加、删除、查找数据的时候都是先使用二分查找法得到相应的index,然后通过index来进行添加、查找、删除等操作,所以,应用场景和SparseArray的一样,如果在数据量比较大的情况下,那么它的性能将退化至少50%。

 

 

SparseArray和ArrayMap都差不多,使用哪个呢? 
假设数据量都在千级以内的情况下:

1、如果key的类型已经确定为int类型,那么使用SparseArray,因为它避免了自动装箱的过程,如果key为long类型,它还提供了一个LongSparseArray来确保key为long类型时的使用

2、如果key类型为其它的类型,则使用ArrayMap

以上是关于性能优化SparseArray的主要内容,如果未能解决你的问题,请参考以下文章

Android应用性能优化之使用SparseArray替代HashMap

Android内存优化(使用SparseArray和ArrayMap代替HashMap)

6.2 性能优化

android性能优化

Android内存优化(使用SparseArray和ArrayMap代替HashMap)

android开发要避免的那些坑