ArrayMap:
- 继承至Map的 key- value的数据集合。
- 相比于HaspMap 它占用的内存较小,内存使用率更高,效率相对HaspMap要慢,因为内部使用二分查找。
- 缺点是对于数据量大的时候,其运行效率会变缓存。
- 会自动根据其数据量大小增加或减少容量。
-
内部有两个数组,一个用于存储hash值, 一个用于存储数据object。二分查找是根据hash值的大小排序的,因此,下图中的mHashes必定是一个有序的数据。因此它在增删的时候,会重新排序,效率低。
在Android Performance Pattern中,官方给出的使用场景为,item数量小于1000,尤其是插入数据和删除数据不频繁的情况。参考:https://androidandbrillo.wordpress.com/2015/09/07/android-performance-patterns-arraymap-vs-hashmap/
ArrayMap 的根本目的是旨在提高数据量小的情况下提高内存使用率。