在Java中,何时使用ArrayList而不是sparseArray?

时间:2015-11-19 16:41:12

标签: java arraylist sparse-matrix

在sparseArray上使用ArrayList是否有任何好处。 sparseArray是更好的内存管理,它不会在像ArrayList这样的空槽中放置空值。但是你总是建议我在一个非常常用的ArrayList上使用sparseArray吗?

要清楚,我不是在问什么是sparseArray(我已经在上面定义了它),我问的是什么时候想要在sparseArray上使用ArrayList。

1 个答案:

答案 0 :(得分:3)

当列表稀疏时,ArrayList需要的内存少于SparseArray,并且通过O(1)中的索引而不是O(log n)进行访问。

来自SparseArray class documentation

  

请注意,此容器将其映射保留在数组数据结构中,使用二进制搜索来查找键。该实现不适用于可能包含大量项目的数据结构。它通常比传统的HashMap慢,因为查找需要二进制搜索,并且添加和删除需要插入和删除数组中的条目。对于容纳数百件物品的容器,性能差异不显着,小于50%。

相关问题