HashMap与ArrayMap(和SparseArray)的比较与选择

本文对比了HashMap、ArrayMap和SparseArray在Android中的实现与性能,详细介绍了它们的存储方式、查找策略以及增删操作。HashMap适合元素较多的场景,而ArrayMap和SparseArray在内存和速度上有优势,特别适合内存敏感和小规模数据。ArrayMap通过二分查找,SparseArray针对基本类型优化,两者均为有序。在特定场景下,ArrayMap的扩容比HashMap更高效。
摘要由CSDN通过智能技术生成

HashMap之外的Map实现

HashMap应该是java中使用最多的Map实现了,ArrayMap为Android SDK提供的另一个Map接口的实现。
SparseArray的实现思路和ArrayMap是一致的,所以捎上说一下

补充说明

ArrayMap在v4包中有兼容的实现,需要兼容低版本不要导错包
android.util.ArrayMap
android.support.v4.util.ArrayMap

HashMap的实现

这里写图片描述
HashMap是通过数组+链表的形式存储数据,内部有一个名为table的Node类型的数组用以存放数据,每一个Node都可以向后构成一个单向链表,用于在hash重复而key不相同时保存新的键值对
Node类的结构:

static class Node<K,V> implements Entry<K,V>{
     
    final int hash;   //key对象的hashCode值  
    final K key;    //key对象  
    V value;    //value对象  
    Node<K,V> next;    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值