• 前言
  • 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) 用于保证文件操作的原子性


如何选择使用

  1. 在数据量小的时候一般认为1000以下,当你的key为int的时候,使用SparseArray确实是一个很不错的选择,内存大概能节省30%,相比用HashMap,因为它key值不需要装箱,所以时间性能平均来看也优于HashMap,建议使用!

  2. ArrayMap相对于SparseArray,特点就是key值类型不受限,任何情况下都可以取代HashMap,但是通过研究和测试发现,ArrayMap的内存节省并不明显,也就在10%左右,但是时间性能确是最差的,当然了,1000以内的如果key不是int 可以选择ArrayMap。

具体分析可参考:https://blog.csdn.net/qq_16318981/article/details/54632223


更多相关文章

  1. android ViewModelProviders被弃用解决方案
  2. Ubuntu下查找.android/avd
  3. 【Android】Lambda表达式
  4. Android(安卓)TabHost的使用 .
  5. Android定义字符串数组资源并在程序中使用
  6. Android中使用Handler引发的内存泄露
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. 【知识点整理】NOLOGGING、APPEND、ARCHI
  2. 一个可悲的现实情况:中小型企业的规模无法
  3. CPU缓存L1/L2/L3工作原理
  4. sql 注入
  5. 【海量数据学院】DBA的学习方法论系列—
  6. 【转载】TX - row lock contention 的一
  7. 【DG】 基于同一个主机建立物理备库和逻
  8. DBCA静默方式建库
  9. 【故障处理】队列等待之TX - allocate IT
  10. 【故障处理】ORA-19809错误处理