[英]Difference between SparseArray Vs ArrayList?
我想知道SparseArray
和ArrayList
性能和效率,以及哪个更好用。 我不明白什么时候用SparseArray
什么时候用ArrayList
?
SparseArray
的目的是在你有一个有很多间隙的列表时节省内存。如果你只有 10 个项目,并且索引它们的数字范围从 0 到 1000,那么ArrayList
将有很多null
条目它,那将是相当浪费的。 SparseArray
将在内部使用数据结构来避免该问题。
这种情况下的替代方案是HashMap
,如果您有很多项目,它比SparseArray
更好。
该实现不适用于可能包含大量项目的数据结构。 它通常比传统的 HashMap 慢,因为查找需要二进制搜索,添加和删除需要在数组中插入和删除条目。 对于最多容纳数百个项目的容器,性能差异并不显着,小于 50%。
来自Android 开发文档。
SparseList 实现了一个SparseArray
。 此类与java.util.ArrayList
相同,除了前者允许使用预期的set()
和add()
方法分配给超出列表当前长度的数组索引。*
我认为这里有所有你需要知道的来了解使用哪一个。
SparseList 也更高效
更多信息在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.