Android 之SparseArray<E>详解
来源:互联网 发布:学校管理网络图示 编辑:程序博客网 时间:2024/06/14 06:00
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch)
- private static int binarySearch(int[] a, int start, int len, int key) {
- int high = start + len, low = start - 1, guess;
- while (high - low > 1) {
- guess = (high + low) / 2;
- if (a[guess] < key)
- low = guess;
- else
- high = guess;
- }
- if (high == start + len)
- return ~(start + len);
- else if (a[high] == key)
- return high;
- else
- return ~high;
- }
所以,它存储的数值都是按键值从小到大的顺序排列好的。
包含的方法,
添加数据:
- public void put(int key, E value) {}
- public void append(int key, E value){}
删除操作:
- public void delete(int key) {}
- public void remove(int key) {}
- public void removeAt(int index){}
- public void clear(){}
修改数据:
- public void put(int key, E value)
- public void setValueAt(int index, E value)
查找数据:
- public E get(int key)
- public E get(int key, E valueIfKeyNotFound)
相应的也有SparseBooleanArray,用来取代HashMap<Integer, Boolean>,SparseIntArray用来取代HashMap<Integer, Integer>,大家有兴趣的可以研究。
SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的类,目的是提高效率,其核心是折半查找函数(binarySearch)。在Android中,当我们需要定义
- HashMap<Integer, E> hashMap = new HashMap<Integer, E>();
时,我们可以使用如下的方式来取得更好的性能。
- SparseArray<E> sparseArray = new SparseArray<E>();
0 0
- Android 之SparseArray<E>详解
- Android之SparseArray<E>详解
- Android 之SparseArray<E>详解
- Android 之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解 .
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- Android编程之SparseArray<E>详解
- 8位有符号的取值范围是-128~+127
- 脚本执行SQL语句的小方法。
- UI_UIStackView
- sizeof(float)是()类型表达式??
- hdu 1272 小希的迷宫
- Android 之SparseArray<E>详解
- 我与即时通讯 - 重构之路
- java HttpURLConnection 中用 userid转openid
- Bootstrap JS插件系列总结
- Ubuntu 命令大全
- 高并发电子商务平台技术架构
- UI_UINib
- HDU 4405 Aeroplane chess(概率dp)
- HDU-1272 小希的迷宫