gpt4 book ai didi

java - for循环与java中List.get的等价

转载 作者:行者123 更新时间:2023-12-02 00:20:54 30 4
gpt4 key购买 nike

我有一个列表,其中包含一个元素,但稍后可能会有更多元素。我使用的列表是 ArrayList。我发现通过调用 List.get(0) 而不是使用 for 循环,我可以获得更快的结果。为什么是这样?循环 1 项不应该与获取 1 项相同吗?如果没有那么我怎样才能获得类似的性能?我知道我的数组最终将大于一项。我在 opengl 渲染器的主体中使用这个循环。当我使用循环时,我的 fps 下降了 45。

编辑:我已经解决了问题。我的渲染器在每次渲染时都会向列表中添加一个新值。

最佳答案

在 Java 中使用增强的 for 循环 (for-each) 会产生如下所示的编译代码:

Iterator<Thing> it = list.iterator();
while(it.hasNext()) {
yourLoop.loopBody(it.next());
}

您可能期望它与此相同?

for (int i = 0; i < list.size(); i++) {
yourLoop.loopBody(list.get(i));
}

但事实并非如此,构建迭代器需要您观察到的额外时间。

关于java - for循环与java中List.get的等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988684/

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