根据我从文档中得到的信息,它是将Integer值映射到布尔值的。
也就是说,如果要映射,则对于某个用户标识,应该显示一个小部件并且某些用户标识已被删除,则映射中会存在空白。
这意味着,对于普通数组,您将创建一个size = maxID的数组,并向index = userID处的元素添加一个布尔值。然后,当遍历数组时,在最坏的情况下,您将不得不遍历maxID元素,并且必须检查null
该索引是否没有布尔值(例如,ID不存在)。那确实是低效的。
使用哈希映射执行此操作时,可以将ID映射到布尔值,但是会增加生成键的 哈希值的 开销(这就是为什么将其称为* hash * map)的原因,这最终会首先损害cpu周期的性能。以及RAM使用情况。
因此,SparseBooleanArray似乎是处理这种情况的良好中间路线。
尽管我的例子确实很虚构,但我希望它能说明情况。