Android 中的高效数据结构
16lz
2021-01-23
- 前言
- SparseArray系列
- ArrayMap系列
- 如何选择使用
前言
Android 提供了一些对于HashMap进行优化的数据结构
SparseArray系列
SparseArray(api 1) 替代map, [int, Object]
SparseArrayCompat(v4) 替代map, [int, Object]
SparseIntArray(api 1) 替代map, [int, Integer]
SparseLongArray(api 18) 替代map, [int, Long]
LongSparseArray(api 16 & v4) 替代map,[int, Long]
SparseBooleanArray(api 1) 替代map, [int, Boolean]
以上特征: key 都是int类型
ArrayMap系列
SimpleArrayMap(v4) [K, V]
ArrayMap(api 19 & v4) [K, V]
AtomicFile(api 19 & v4) 用于保证文件操作的原子性
如何选择使用
在数据量小的时候一般认为1000以下,当你的key为int的时候,使用SparseArray确实是一个很不错的选择,内存大概能节省30%,相比用HashMap,因为它key值不需要装箱,所以时间性能平均来看也优于HashMap,建议使用!
ArrayMap相对于SparseArray,特点就是key值类型不受限,任何情况下都可以取代HashMap,但是通过研究和测试发现,ArrayMap的内存节省并不明显,也就在10%左右,但是时间性能确是最差的,当然了,1000以内的如果key不是int 可以选择ArrayMap。
具体分析可参考:https://blog.csdn.net/qq_16318981/article/details/54632223
更多相关文章
- Android中使用Handler引发的内存泄露
- Android 内存限制
- .Net程序员玩转Android系列之一~Java快速入门
- Android应用开发提高系列(5)――Android动态加载(下)――加载已安装A
- Android设计模式系列-组合模式
- 《Android Dev Guide》系列教程
- Android 性能优化之内存优化