gpt4 book ai didi

Java反转for循环中访问列表的顺序

转载 作者:行者123 更新时间:2023-11-30 06:12:29 26 4
gpt4 key购买 nike

我想颠倒在 for() 中访问列表的顺序

这是我的实际代码

for(int i = 0; i < states.size(); i++) {
System.out.println(states.size());
states.get(i).update(true); // restore the first blockstate
states.remove(i); // remove the first blockstate from the list
}

此代码有效,但我想反转它。我已经尝试过其他方法,比如使用 i-- 但它没有用。有人可以提供建议吗?

最佳答案

I already tried other ways, like using i-- but it did not work.

反转 for 循环包括三个步骤:

  • 将初始值更改为最后一个值,
  • 改变条件在超过初始值后停止
  • 反转递增/递减(即 ++ 变为 --)

在您的代码中,此更改如下所示:

for(int i = states.size()-1 ; i >= 0 ; i--) {
System.out.println(states.size());
states.get(i).update(true); // restore the current blockstate
states.remove(i); // remove the current blockstate from the list
}

请注意,在原始循环中最后到达的值是states.size()-1,而不是states.size(),所以i 也需要从 states.size()-1 开始。

由于您的循环最终会清除列表,但一次只清除一个元素,您可以通过删除 remove(i) 的调用,将其替换为 来获得更好的清晰度states.clear() 在循环之后。

for(int i = states.size()-1 ; i >= 0 ; i--) {
System.out.println(states.size());
states.get(i).update(true); // restore the current blockstate
}
states.clear();

关于Java反转for循环中访问列表的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32843319/

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