Android 中的高效数据结构


前言

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]

扫描二维码关注公众号,回复: 471516 查看本文章

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


猜你喜欢

转载自blog.csdn.net/jjwwmlp456/article/details/80271306