繁体   English   中英

SparseArray 与 ArrayList 之间的区别?

[英]Difference between SparseArray Vs ArrayList?

我想知道SparseArrayArrayList性能和效率,以及哪个更好用。 我不明白什么时候用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM