数据量比较小,并且需要频繁使用Map存储数据时,推荐使用ArrayMap,数据量偏大,推荐使用HashMap。
前面的文章有写过HashMap,就不多阐述了,这篇文章主要的是讲讲ArrayMap与HashMap的区别。
ArrayMap与HashMap类似,都是使用键值对存储数据,考虑到内存优化的问题,Android优化了HashMap,也就是现在的ArrayMap。
ArrayMap使用二分法对key从小到大排序,在删除,添加,查找元素的时候,使用二分查找法找到key所在的index,通过index找到对应的元素。所以ArrayMap适合于数据量偏小的场景,否则性能会变得很慢。
ArrayMap使用两个数组存储,一个存储key的hash值,一个存储value。而HashMap使用的是数组+链表+红黑树。
对ArrayMap感兴趣的可以参考下面的文章