SparseArray

概述

SparseArray 与一般数组不同之处在于它将 integers 和 Object 做一个映射,它的 Index(索引)可以为空。 SparseArray 的目标是比 HashMap 更高效的使用内存,因为它能避免自动将装箱,并且对于每一个映射,它的数据结构不依赖外部的 entry(实体) 。

注意,这个容器的将没一对数据存储在数组(数据结构)中,通过二分法检索key(键)。 这种实现方式不适用于大量的数据存储。 因为这种检索方式,在增删该查数据的时候它是比 HashMap 慢的。 对于容量在 100 以内的情况下性能差异在 50% 以内。

为了提升效率,这个容器在 remove key 的时候做了适当的优化:不是立即删除并且压缩数组而是将该条目标记为已删除。 entry 所占有的资源可以被覆盖使用,或者在集中垃圾回收的时候清除他们(压缩数组)。 每当数组增长或者数组大小,或者数组尺寸或者值被取出的时候,垃圾回收一定会执行。

可以通过 keyAt(int) 或者 valueAt(int) 完成对数据的操作。 应该按照生序获取目标值。

Last updated