gpt4 book ai didi

java - 列表文档中的混淆点

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:49:53 24 4
gpt4 key购买 nike

我不清楚 List 文档中的一点.

它说:

i) Note that these operations may execute in time proportional to the index value for some implementations (the LinkedList class, for example).
ii) Thus, iterating over the elements in a list is typically preferable to indexing through it if the caller does not know the implementation.

请注意,我将 (i) 和 (ii) 放在引号中。

由于我们访问链表的方式与随机访问数组的方式不同,第 (i) 点非常明显。

虽然我无法理解第 (ii) 点。
如果我们不知道实现,我们通过选择迭代器有什么好处?
我的意思是,如果实现是 LinkedList,与通过索引访问相比,性能有什么不同吗?
我想不会,因为 Iterator 无论如何都会操纵一个 LinkedList
所以不会有区别。

那么文档中(ii)的推荐是什么意思呢?

最佳答案

链表的迭代器可以有一个指向链表中下一个节点的指针,每次调用 next() 时都转到下一个节点。并不是每次都从头开始。而如果您使用索引并调用 get(i),则链表必须在每次迭代时从头开始迭代直到第 i 个元素。

您错过的是 ArrayList 的迭代器实现和 LinkedList 的迭代器实现完全不同。

关于java - 列表文档中的混淆点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8861522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com