美文网首页
Android中推荐SpareArray替代HashMap的原因

Android中推荐SpareArray替代HashMap的原因

作者: 浩仔_Boy | 来源:发表于2021-01-27 15:47 被阅读0次

自己学习笔记,仅供自己参考,如有不对欢迎指正

大多数情况下当key为int的时候,推荐使用SpareArray代替HashMap

  • 性能方面: int作为key,hashMap会强制使用Integer进行包装,而SpareArray内部是一个数组和一个Object数组,可以直接使用Int,减少装箱操作。

  • 内存方面:SpareArray是使用的双数组的方式,HashMap为了避免哈希冲突,引入负离子,默认是0.75,也就是说会有25%的空间被浪费,而SpareArray会利用的最后一个元素。

  • 查找速度:内部使用的二分查找法,小数据量更高效

  • SparseArray内部两个优化:
    数组的缺点:插入和删除的效率低

  1. 对于删除的优化,引入 DELETE 标记
    SparseArray 对数组的删除不做数据搬移,引入 DELETE 标记,以此达到在删除时做到 O(1) 的时间复杂度。在调用 size()put()需要扩容时,才去清理 DELETE 标识。

  2. 对于插入的的优化,提供append() 方法
    通过 append() 方法,来优化追加的情况。该方法会判断追加的 key 值,是否大于数组中最大的值,如果是则直接追加在数组末尾,否则执行 put() 方法插入 mKey 数组。

相关文章

  • Android中推荐SpareArray替代HashMap的原因

    自己学习笔记,仅供自己参考,如有不对欢迎指正 大多数情况下当key为int的时候,推荐使用SpareArray代替...

  • SpareArray源码分析

    在Android平台,SpareArray可以替代HashMap实现数据存储,它和HashMap数组+链表的数据结...

  • SparseArray、ArrayMap替代HashMap原因

    背景 对于Android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更好的性能,相反反...

  • SparseArray

    前言 概括的说,SparseArray 是用于在 Android 平台上替代 HashMap 的数据结构,更...

  • 带着问题看SparseArray源码

    sparseArray作为google推出的在android上替代hashmap的容器类,相信大家使用的也比较频繁...

  • android 容器--SparseArray

    概要 概括的说,SparseArray是用于在Android平台上替代HashMap的数据结构,更具体的说,...

  • 关于SparseArray

    作用 用来替代key为int的HashMap 分析 源码中的相关分析: 对比HashMap 优势空间上 去除了ha...

  • HashMap 基于 JDK 1.7 源码解析

    简介 HashMap 在 Android 开发中还算是使用频率较高的,而且面试中面试官也常常会问 HashMap ...

  • 集合

    Android中的HashMap替换 key为int类型的替换: key为其他类型的替换: Android中的Ha...

  • HashMap解析

    注:本文是以Android中的HashMap进行讲解 问题: 1、HashMap采用的是什么数据结构?2、Hash...

网友评论

      本文标题:Android中推荐SpareArray替代HashMap的原因

      本文链接:https://www.haomeiwen.com/subject/ulsazktx.html