icode icode
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

iqqcode

保持对技术的探索实践与热爱
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 基础内容

  • AndroidCore

  • Android UI

  • Components

  • Fragment

  • 网络操作

  • 异步机制

  • 数据存储

    • Storage

    • 集合类

      • SparseArray
  • 学习笔记

  • 自定义View

  • View事件体系

  • Android
  • 数据存储
  • 集合类
iqqcode
2021-09-05

SparseArray

SparseArray将整数映射到对象,并且与普通的对象数组不同,它的索引可以包含间隙。SparseArray旨在比 a 更节省内存 HashMap (opens new window),因为它避免了自动装箱键,并且其数据结构不依赖于每个映射的额外条目对象。

请注意,此容器将其映射保存在数组数据结构中,使用二进制搜索来查找键。该实现不适用于可能包含大量项目的数据结构。它通常比 a 慢, HashMap因为查找需要二进制搜索,并且添加和删除需要在数组中插入和删除条目。对于最多容纳数百个项目的容器,性能差异小于 50%。

为了提高性能,容器在删除键时进行了优化:不是立即压缩其数组,而是将删除的条目标记为已删除。然后可以将条目重新用于相同的键,或者稍后在所有删除条目的单个垃圾收集中进行压缩。每当需要增大数组,或者检索映射大小或条目值时,都必须执行此垃圾回收。

可以使用keyAt(int)和迭代此容器中的项目 valueAt(int)。使用keyAt(int)索引的升序值迭代键 以升序返回键。在 的情况下valueAt(int),键对应的值按升序返回。

【学习文章】

  • 面试还在问 SparseArray?记住 3 句话让你临时把佛脚抱好 (opens new window)
  • 这一次,彻底搞懂SparseArray实现原理 (opens new window)
  • https://developer.android.com/reference/android/util/SparseArray
  • [ ] 更适合Android的集合 SparseArray/ArrayMap/ArraySet (opens new window)
  • [ ] 性能优化:为什么要使用SparseArray和ArrayMap替代HashMap (opens new window)
编辑 (opens new window)
上次更新: 2021/09/05, 15:01:20
SDLite数据库
『框架』笔记

← SDLite数据库 『框架』笔记→

最近更新
01
匿名内部类
10-08
02
函数式接口
10-08
03
ARouter-Kotlin踩坑
10-05
更多文章>
Theme by Vdoing | Copyright © 2021-2023 iqqcode | MIT License | 备案号-京ICP备2021028793号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×