首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

这一次,彻底搞懂SparseArray实现原理

最近在整理SparseArray这一知识点的时候,发现网上大多数SparseArray原理分析的文章都存在很多问题(可以说很多作者并没有读懂SparseArray的源码),也正因此,才有了这篇文章。...一、SparseArray的类结构 SparseArray可以翻译为稀疏数组,从字面上可以理解为松散不连续的数组。虽然叫做Array,但它却是存储K-V的一种数据结构。...大概这也是SparseArray名字的由来吧。 三、SparseArray的put()方法 作为一个存储K-V类型的数据结构,put方法是key和value的入口。...也是SparseArray中最重要的一个方法。...这也是网上大部分文章对应SparseArray的解析都是含糊不清的原因。相信通过本篇文章的学习一定对SparseArray的实现有了新的认识!

61510

Android开发之那些好用的数据结构与API

一、数据结构篇 1.SparseArray —— 替代HashMap,主要有以下几种 SparseLongArray SparseIntArray SparseBooleanArray SparseArray...SparseArray比HashMap更省内存,它对数据采取了压缩的方式来表示稀疏数组的数据,从而节约内存空间,SparseArray只能存储key为int类型的数据,同时,SparseArray在存储和读取数据时候...,使用的是二分查找法 //创建一个存储String值得SparseArray SparseArray sparseArray = new SparseArray();...//存储 注意key是int类型 sparseArray.put(1, "zhangsan"); sparseArray.put(2, "123456"); //通过int类型的key获取value...sparseArray.get(1); //第二个参数是默认值 sparseArray.put(2, "000000"); //获取索引处的key与value sparseArray.keyAt(1)

80950

Weekly 之 集合 专栏

这次总结了个常见的集合思维导图: 这里面主要的知识点是 Java 集合中的 HashMap 与 Android 集合中 ArrayMap、SparseArray 的比较了,引用 Gityuan 的总结...: 数据结构 ArrayMap 和 SparseArray 采用的都是两个数组,Android专门针对内存优化而设计的 HashMap 采用的是数据+链表+红黑树 内存优化 ArrayMap 比 HashMap...更节省内存,综合性能方面在数据量不大的情况下,推荐使用 ArrayMap; Hash 需要创建一个额外对象来保存每一个放入 map 的 entry,且容量的利用率比 ArrayMap 低,整体更消耗内存 SparseArray...比 ArrayMap 节省1/3的内存,但 SparseArray 只能用于 key 为 int 类型的 Map,所以int类型的Map数据推荐使用 SparseArray; 性能方面: ArrayMap...查找时间复杂度 O(logN);ArrayMap 增加、删除操作需要移动成员,速度相比较慢,对于个数小于 1000 的情况下,性能基本没有明显差异 HashMap 查找、修改的时间复杂度为O(1); SparseArray

49230

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券