SparseArray源码阅读
2014-07-21 22:04
253 查看
SparseArray是安卓里用来做Integer到object映射的数据结构。
介绍说:
0.使用数组,但是indice可以不连续
1.使用二分查找
2.不用额外类存储对象,比Hashmap内存性能好,但是查找性能差
3.使用置删除位的办法,减少删除
源码中:
0.清除删除元素(gc),使用两个下标,一个指示当前遍历到的元素,一个指示当前未删除元素
1.put且需要扩充大小时,会进行gc
2.取大小时会进行gc
3.按下标操作时,会进行gc
4.有一个ArrayUtils.idealByteArraySize,会对数组进行内存对齐,注意每个数组有一个12byte的头
介绍说:
0.使用数组,但是indice可以不连续
1.使用二分查找
2.不用额外类存储对象,比Hashmap内存性能好,但是查找性能差
3.使用置删除位的办法,减少删除
源码中:
0.清除删除元素(gc),使用两个下标,一个指示当前遍历到的元素,一个指示当前未删除元素
1.put且需要扩充大小时,会进行gc
2.取大小时会进行gc
3.按下标操作时,会进行gc
4.有一个ArrayUtils.idealByteArraySize,会对数组进行内存对齐,注意每个数组有一个12byte的头
相关文章推荐
- 深入分析Android系统中SparseArray的源码
- ArrayBlockingQueue 源码阅读 问题(一)
- [PHP源码阅读]array_pop和array_shift函数
- JDK 1.8 ArrayBlockingQueue 源码阅读(一)插入
- [PHP源码阅读]array_slice和array_splice函数
- 《java.util.concurrent 包源码阅读》06 ArrayBlockingQueue
- JDK 1.8 ArrayBlockingQueue 源码阅读(二)获取
- ArrayBlockingQueue源码阅读心得
- ArrayBlockingQueue源码阅读
- Android源码-SparseArray
- Android SparseArray源码分析
- SparseArray源码中的G点
- android sparseArray源码解析
- 阅读ArrayBlockingQueue源码了解如何利用锁实现BlockingQueue
- HashMap,ArrayMap,SparseArray源码分析及性能对比
- ArrayBlockingQueue 源码阅读与分析
- 谈谈源码中的SparseArray
- nginx源码阅读笔记.array和list数据结构
- android SparseArray 源码分析
- Android SparseArray 源码详解