SparseArray原理分析

系列文章地址:
Android容器类-ArraySet原理解析(一)
Android容器类-ArrayMap原理解析(二)
Android容器类-SparseArray原理解析(三)
Android容器类-SparseIntArray原理解析(四)

SparseArray和其他的Android容器类一样,都是为了更加有效地利用内存,说直白点,就是为了节省内存。SparseArrayArrayMap一样,都是为了更高效的保存int值到非原始类型的映射,用了同样的数据结构,但是为了提高效率,SparseArray也做了自己的优化。接下来就分析一下SparseArray的存储,添加和删除元素。

继承结构


上图表明,SparseArray并没有像ArrayMap一样实现Map接口,仅仅实现了Cloneable接口。

存储结构


存储结构和ArraySet以及ArrayMap一脉相承,都使用int数组存储key值,使用Object数组存储对象。不同点在于mKeys数组中存储的是添加元素的key值本身,没有进行hash值得计算。

put

public void put(i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值