Android(安卓)中的高效数据结构
16lz
2022-01-09
- 前言
- 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 ViewModelProviders被弃用解决方案
- Ubuntu下查找.android/avd
- 【Android】Lambda表达式
- Android(安卓)TabHost的使用 .
- Android定义字符串数组资源并在程序中使用
- Android中使用Handler引发的内存泄露
- 箭头函数的基础使用
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用