Android开发之SparseArray简介
来源:互联网 发布:程序员算法 编辑:程序博客网 时间:2024/05/17 07:16
1、定义: SparseArray,即稀疏数组,这个对象和HashMap类似,也是一个容器,但是它的key是整数类型。
2、特点:SparseArray不需要对key和value进行auto- boxing(将原始类型封装为对象类型,比如把int类型封装成Integer类型),结构比HashMap简单(SparseArray内部主要使用 两个一维数组来保存数据,一个用来存key,一个用来存value)不需要额外的额外的数据结构(主要是针对HashMap中的HashMapEntry 而言的)。
3、优点:
(1)使用SparseArray存储数据时,需要的内存空间比HashMap要小,可以测试同时存储1w条数据SparseArray和HashMap需要申请的空间。
(2)存储数据时速度更快,但是使用SparseArray倒序存储时,速度要比正序存储要慢上10倍左右,但是和HashMap相比仍然要快一点。逆序存储变慢的原因是:SparseArray存储数据时采用了二分查找算法进行存储,在存储数据的时候需要对key进行从小到大的顺序进行排序。采用HashMap存储数据慢的原因:HashMap采用的是哈希查算法对数据进行存储,哈西存储算法是通过hashCode(关键码)来确定节点的存储位置的。而SparseArray是通过数组的方式存储数据的,很明显HashMap存储的方式慢很多。
(3)在查找方面:SparseArray使用的是二分查找算法,而HashMap使用的哈希查找算法,一般的情况下SparseArray的查找效率高些。
(4)在删除方面:SparseArray删除数据的时候也做了优化,使用了延迟整理数组的方法,和HashMap相比,性能差不多。
总之,在Android系统里面,内存是非常金贵的,所以使用SparseArray来存储数据是一种更好的选择。
- Android开发之SparseArray简介
- Android开发之SparseArray替代HashMap
- Android之SparseArray
- Android开发性能优化之SparseArray和HashMap
- Android开发性能优化之SparseArray和HashMap
- Android开发性能优化之SparseArray和HashMap
- Android开发性能优化之SparseArray和HashMap
- Android开发性能优化之SparseArray和HashMap
- Android 之SparseArray<E>详解
- Android源码分析之SparseArray
- android性能优化之SparseArray
- Android之SparseArray<E>详解
- Android编程之SparseArray<E>
- Android性能优化之SparseArray
- Android 之SparseArray<E>详解
- Android 之SparseArray<E>详解
- Android API之ArrayMap、SparseArray
- Android性能优化之SparseArray
- Note_iOS系统架构
- Android学习6.2下拉列表二
- 对开发者有益的网站
- 随机生成身份证号和年龄
- Ubuntu下有道词典的安装
- Android开发之SparseArray简介
- 认识自己——我本来就善于为别人着想
- hibernate 实体的继承
- C#遍历硬盘所有目录 事件发布模式
- Codeforces Round #307 (Div. 2)(二分||位运算+矩阵快速幂||分块)
- SPFA算法
- Android学习之重载实现ListView的间隔背景色
- NGINX + TOMCAT7 + MEMCACHED 实现SESSION 共享
- 低版本的Nginx支持PATHINFO的方法