gpt4 book ai didi

java - 用Java中的步骤迭代LinkedList

转载 作者:行者123 更新时间:2023-12-01 19:02:40 25 4
gpt4 key购买 nike

假设我们知道列表的大小,并且只想遍历其中的每五个元素。我想如果我用 ArrayList 来做到这一点,如下所示:

List<Item> l = new ArrayList<Item>();
for (int i = 0; i < l.size(); ) {
Item item = l.get(i);
i += 5;
}

每次我调用l.get(i)时,它都会间接迭代列表中的每个元素,直到i,这是愚蠢的。有没有办法只访问每五个元素?也许LinkedList?您能给我一个关于如何使用 ListIterator 来实现此目的的示例吗?

最佳答案

it will indirectly iterate through every element of the list up to i each time I call l.get(i)

不,不会。 ArrayList 中的 get(i) 是一个 O(1) 操作,将直接从后备数组中获取项目 - 不涉及迭代。请参阅ArrayList's javadoc :

The size, isEmpty, get, set, iterator, and listIterator operations run in constant time.

<小时/>

相反,如果您使用LinkedList,它将迭代每个元素,并且效率会降低,如解释的 in the LinkedList javadoc :

Operations that index into the list will traverse the list from the beginning or the end, whichever is closer to the specified index.

关于java - 用Java中的步骤迭代LinkedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11629126/

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