SparseArray与ArrayList之间的区别?

Ami*_*ati 30 java android

我想知道的性能和效率,SparseArray以及ArrayList和哪一个是更好地使用.我无法理解何时使用SparseArray和什么时候ArrayList

chi*_*ity 43

SparseArray如果你有一个有很多空白的列表,那么a的目的是节省内存.如果你只有10个项目,并且索引它们的数字范围从0到1000,那么ArrayList它将包含大量null条目,并且这将是非常浪费的.A SparseArray将在内部使用数据结构来避免该问题.

在这种情况下的另一种选择是a HashMap,SparseArray如果你有很多物品,这比a更好.

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

来自Android开发文档.

  • [这里有一篇好文章](http://www.javacodegeeks.com/2012/07/android-performance-tweaking-parsearray.html) 比较了 `SparseArray` 和 `HashMap` 的性能。 (2认同)