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