SparseArray代替HashMap<Integer,Object>
SparseArray是Android框架独有的类,在标准的JDK中不存在这个类。他要比HashMap节省内存,某些情况下比
其默认的大小是10
增
put(int key,E value)
append(int key,E value)
在存储数据的时候,是采用了二分法方式,所以他存储的数值都是按键值从小到大的顺序排好的
查
public E get(int key)
public E get(int key,E valueIfKeyNotFound)
public int keyAt(int index)查看第几个位置的键
public E valueAt(int index)查看第几个位置的值
SparseArray是Android框架独有的类,在标准的JDK中不存在这个类。他要比HashMap节省内存,某些情况下比
HashMap的性能更好,主要是因为SpareArray不需要对key和value进行auto-boxing(将原始类型封装成对象类型,
如把int类型封装成Integer类型),结构比HashMap简单(SparseArray内部主要使用两个一维数组来保存资源,
一个用来保存key,一个用来存value)不需要额外的数据结构。核心是二分查找。其默认的大小是10
增
put(int key,E value)
append(int key,E value)
在存储数据的时候,是采用了二分法方式,所以他存储的数值都是按键值从小到大的顺序排好的
查
public E get(int key)
public E get(int key,E valueIfKeyNotFound)
public int keyAt(int index)查看第几个位置的键
public E valueAt(int index)查看第几个位置的值
本文详细介绍了Android框架中的SparseArray类,对比了它与HashMap的区别。SparseArray不仅节省内存,还提供了更好的性能,尤其在不需要对键值进行装箱操作的情况下表现更佳。文章深入探讨了SparseArray的内部实现机制,包括其基于二分查找的高效查询方式。
212

被折叠的 条评论
为什么被折叠?



