SparseArray稀疏数组浅析
2016-03-30 15:42
525 查看
简介
SparseArray指的是稀疏数组,是Android中对HashMap的性能优化。所谓稀疏数组就是数组中的大部分的内容值都未被使用或者都为0,在数组中仅有少部分的空间使用。因此造成了内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以采用一种压缩的方式来表示稀疏数组的内容。构造方法
它和一般的list一样,可以预先设置容器的大小,默认大小是10。增删改查
增加,添加键值对
①put(int key,E value); //存在,修改;不存在,添加 ②append(int key,E value);
删除操作
①delete(int key); ②remove(int key); //直接调用delete() ③removeAt(int key); ④removeAtRange(int index,int size) //范围在:index<=X<index+size ⑤clear()
修改数据
①setValueAt(int key,E value); ②put(int key,E value); //先查找数据是否存在,若存在就修改;若不存在就添加
查询数据
①get(int key); //调用get(int key,null) ②get(int key,E valueIfKeyNotFound);
查找键和值
int keyAt(int index) //查看第几个位置的键 E value(int index) //查看第几个位置的值
核心
其核心是二分查找:位置在:android.util.ContainerHelper.binarySearch()
SparseArray是Android里为
<Integer,Object>这样的HashMap专门写的类,目的是提高效率,其核心是折半查找方法binarySearch()。
相关文章推荐
- 使用Xcode检测循环引用
- JFinal教程JfinalUIB 代码笔记 (9)--- JFinal分页存在的问题
- 图解new
- 猿题库 iOS 客户端架构设计
- linux 线程创建函数pthread_create的几个传参方式
- SQL注入解决方法
- linux下解压rar的安装步骤及命令使用
- unity3d的playmaker插件使用教程,二、开关盒子
- 静态库与动态库
- Oracle中的PLsql的符号解释大全
- MongoDB 性能瓶颈分析
- JavaSe基础(14)-- 对象的转型 向上转型 向下转型
- [AngularJS] 1. Angular JS的五大特性
- 深入浅出 Cocoa 之 Core Data
- 解决web项目无法部署到eclipse配置的本地tomcat
- Linux常用命令
- android推送-PHP(第三方推送:个推)
- JSON和JSONP具体是干神马的呢? (含jQuery实例)
- C语言之内存四区模型和函数调用模型
- 反射(二)反射工厂