• 前言
  • 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中使用Handler引发的内存泄露
  2. Android 内存限制
  3. .Net程序员玩转Android系列之一~Java快速入门
  4. Android应用开发提高系列(5)――Android动态加载(下)――加载已安装A
  5. Android设计模式系列-组合模式
  6. 《Android Dev Guide》系列教程
  7. Android 性能优化之内存优化

随机推荐

  1. Android(安卓)盒子开发,TV开发,经验总结NO.
  2. 百度Android语音合成(TTS)SDK使用方法
  3. Android(安卓)ListView页眉页脚效果
  4. 制作一款简单的网络图片查看器
  5. 三星Tizen手机官网现身 上市或面临风险
  6. 几行代码,让你的app动感起来--Android(安
  7. Android异步通信:图文详解Handler机制工作
  8. android基础知识16:多分辨率屏显设计及其
  9. Android手势学习之单点手势
  10. 你真的了解Android系统框架的四层结构吗?