Android中SparseArray一个写的很人性化的地方
2013-09-04 11:05
330 查看
http://blog.sina.com.cn/s/blog_68d72c9b010131ug.html
SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch),今天在看这个class的实现时发现一个很好的设计:
public void remove(int key) {
delete(key);
}
remore和delete都实现了,功能当然是一样的,对用户来说,想用delete,和remove的都可以。
起折半查找算法也写的非常棒:
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;
}
SparseArray是android里为<Interger,Object>这样的Hashmap而专门写的class,目的是提高效率,其核心是折半查找函数(binarySearch),今天在看这个class的实现时发现一个很好的设计:
public void remove(int key) {
delete(key);
}
remore和delete都实现了,功能当然是一样的,对用户来说,想用delete,和remove的都可以。
起折半查找算法也写的非常棒:
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;
}
相关文章推荐
- Android 合适的地方高效实用SparseArray,SparseBooleanArray,SparseBooleanArray代替Java中map
- android:应用性能优化SparseArray
- Android SparseArray代替HashMap
- android SparseArray替代HashMap的分析
- Android 开发性能优化之SparseArray(二)
- Android性能优化----SparseArray
- SparseArray in Android
- Android缓存SparseArray使用
- 深入分析Android系统中SparseArray的源码
- android开发类库SparseArray与HashMap的研究
- android sparseArray源码解析,比较hashmap
- Android SparseArray(稀疏数组)
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
- Android源码-SparseArray
- Android编程之SparseArray<E>
- Android播放器中我喜欢的一个地方-----高斯模糊效果
- Android开发中高效的数据结构用SparseArray代替HashMap
- Android 性能优化——使用优化集合类SparseArray&ArrayMap
- Android编程之SparseArray<E>详解
- android性能优化之SparseArray