本文主要是介绍【Android】SparseArray和ArrayMap替换HashMap优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在Android开发时,我们使用的大部分都是Java的api,比方HashMap这个api,使用率非常高,可是对于Android这样的对内存非常敏感的移动平台,非常多时候使用一些java的api并不能达到更好的性能,相反反而更消耗内存,所以针对Android这样的移动平台,也推出了更符合自己的api,比方SparseArray、ArrayMap用来取代HashMap在有些情况下能带来更好的性能提升。
介绍它们之前先来介绍一下HashMap的内部存储结构。就明确为什么推荐使用SparseArray和ArrayMap
HashMap
HashMap内部是使用一个默认容量为16的数组来存储数据的,而数组中每个元素却又是一个链表的头结点。所以,更准确的来说,HashMap内部存储结构是使用哈希表的拉链结构(数组+链表),如图:
这样的存储数据的方法叫做拉链法
且每个结点都是Entry类型
final K key;
V value;
final int hash;
HashMapEntry<K, V> next;
从中我们得知Entry存储的内容有key、value、hash值、和next下一个Entry。那么。这些Entry数据是按什么规则进行存储的呢?就是通过计算元素key的hash值
这篇关于【Android】SparseArray和ArrayMap替换HashMap优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!