首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ArrayMap vs HashMap

问:ArrayMap vs HashMap,要怎么选?...答:当size小于等于8的时候,选择ArrayMap,其他情况下选择hashmap ArrayMap的优势:更节约内存 内存增长慢:arraymap内存增加是每次增加1.5倍,而hashmap是每次增加...了,下面继续用自问自答的方式了解下arraymap 存储载体是什么 存储的载体,才是了解一个map的本质,ArrayMap的载体是两个数组,一个是存储Key的hash值,一个是存储key跟value...,另外,arraymap存在两个版本,一个是AndroidX,一个是系统framework //framework自带的arraymap android.util.ArrayMap //Androidx...的arraymap androidx.collection.ArrayMap 使用的时候,切记使用Androidx的arraymap,以保证在所有版本的系统上,表现一致

81020
您找到你想要的搜索结果了吗?
是的
没有找到

深度解读ArrayMap优势与缺陷

为此,2013年5月20日Google工程师Dianne Hackborn在Android系统源码中新增ArrayMap类。...在Android源码中可以发现不少提交专门把之前使用HashMap地方改用ArrayMap,不仅如此,大量的应用开发者中广为使用。 然后,你是否研究过这么广泛使用的基础数据结构存在缺陷?...要回答这个问题,需要先从源码角度来理解ArrayMap的原理,阅读时长约30分钟。 ArrayMap是Android专门针对内存优化而设计的,用于取代Java API中的HashMap数据结构。...HashMap的查找和插入时间复杂度为O(1)的代价是牺牲大量的内存来实现的,而SparseArray和ArrayMap性能略逊于HashMap,但更节省内存。 接下来,从源码看看ArrayMap。...4.3 ArraySet ArraySet也是Android特有的数据结构,用于替代HashSet的,跟ArrayMap出自同一个作者,从源码来看ArraySet跟ArrayMap几乎完全一致,包含缓存机制

1.8K20
领券