我一直只是一个人使用:List<String> names = new ArrayList<>();我使用接口作为可移植性的类型名称,因此当我问这些问题时,我可以重新编写代码。何时应该LinkedList使用,ArrayList反之亦然?
3 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
ArrayList
是你想要的。LinkedList
几乎总是一个(性能)错误。
为什么LinkedList
糟透了:
它使用大量小内存对象,因此会影响整个过程的性能。
很多小对象都不利于缓存局部性。
任何索引操作都需要遍历,即具有O(n)性能。这在源代码中并不明显,导致算法O(n)比
ArrayList
使用的算法慢。获得良好的表现是棘手的。
即使大O性能相同
ArrayList
,但无论如何它可能会明显变慢。LinkedList
在源代码中看到它很不耐烦,因为它可能是错误的选择。
添加回答
举报
0/150
提交
取消