SparseArray 原理

SparseArray 是Android 特有的api,标准jdk里面没有这个类,在Android内部用来替代HashMap这种形式;SparseArray更加节省内存的使用,SparseArray也是以key和value对数据进行保存的.使用的时候只需要指定value的类型即可.并且key不需要封装成对象类型.

HashMap是数组和链表的结合体,被称为链表散列.

SparseArray是单纯数组的结合.被称为稀疏数组,对数据保存的时候,不会有额外的开销.结构如下:

SparseArray 原理_第1张图片

SparseArray每次的插入方式都需要调用二分查找.因此这样在倒序插入的时候会导致情况非常的糟糕,效率上绝对输给了HashMap

数据量100000条时SparseArray要比HashMap要节约27%的内存.也就是以牺牲效率的代价去节约内存空间.我们知道Android对内存的使用是极为苛刻的.堆区允许使用的最大内存仅仅16M.很容易出现OOM现象的发生.因此在Android中内存的使用是非常的重要的

你可能感兴趣的:(SparseArray 原理)