SparseArray 你不知道的东西

一、SparseArray

1.类似HashMap的容器,但HashMap的key和value为泛型,而SparseArray的key只能为int类型,value值为Object类型。因为key只能为int类型,因此无法直接存储null作为key值。
内部有2个数组分别存储key和value。
    private int[] mKeys;
    private Object[] mValues;

2.通过二分法来查询、添加、删除、更新数据。

3.在并发环境下不是线程安全的。

4.适用于数据流不是很大的场景,因为SparseArray内部使用数组存储数据,在处理大量数据时可以会有性能瓶颈。

5.与HashMap相比,SparseArray存储键为int类型时更高效,因为它避免了自动装箱(AutoBoxing)与自动拆箱(AutoUnboxing),并能更好的处理大量空值(null values)的情况。

6.SparseArray内部优化了对空值的处理,当值(value)为空时,它将自动从SparseArray中删除,不会占用额外的空间。


二、SparseBooleanArray,SparseIntArray,SparseLongArray

1.SparseBooleanArray,SparseIntArray,SparseLongArray这3个类相对SparseArray来说就是key类型是一样的为int,但value类型不同。SparseBooleanArray的value为boolean类型,SparseIntArray的value为int类型,SparseLongArray的value为long类型。

2.这3个类的value的类型boolean、int、long都是小写的,意味着它们是基本类型,而不是封装类型。
 


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值