我想了解SparseArray
和ArrayList
的性能和效率,以及哪个更好使用。
我不理解何时使用SparseArray
以及何时使用ArrayList
?
SparseArray
的用途是节省内存,当你有一个存在许多空缺的列表时。如果你只有10个项目并且它们的索引范围从0到1000,那么ArrayList
中将有许多null
条目,这将是相当浪费的。SparseArray
会使用内部数据结构来避免这个问题。
在这种情况下的替代方案是HashMap
,如果你有很多项目,那么HashMap
比SparseArray
更好。
这个实现不适用于可能包含大量项目的数据结构。它通常比传统的HashMap慢,因为查找需要二进制搜索,添加和删除需要在数组中插入和删除条目。对于容纳数百个项目的容器,性能差异不重要,小于50%。
来自Android开发文档。
SparseArray
和HashMap
的性能。点击阅读。 - Alexander SukharevBinarySearch
更快 O o - Daksh Gargas