SparseArray你不知道的东西

程序员小迷 2024-07-21 11:17:47

一、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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

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

0 阅读:2

程序员小迷

简介:致力于Android、iOS、C、Java等编程技术的技巧经验分享