gpt4 book ai didi

java - 是否可以更改 for 循环内的计数器变量?

转载 作者:行者123 更新时间:2023-12-01 18:35:12 26 4
gpt4 key购买 nike

我正在尝试在 Java 中对 LinkedList 进行排序。我需要从后到前浏览mylist。列表中的元素是我的类 CustomElement 中的对象。如果它们匹配某种模式,我想把它们放在前面。

我的问题是,如果我检测到列表中索引为 5 的元素与我的模式匹配,并且我将其移动到索引 0,那么索引为 4 的前一个元素现在索引为 5,对吧?这就是为什么我希望 for 循环再次检查索引为 5 的元素:i++。但这会导致无限循环,而该方法在没有 i++ 的情况下工作正常,但不是我想要的方式,因为它跳过索引为 4(现在为 5)的元素。

通常可以在 for 循环内提高变量 i 吗?如果是的话,我做错了什么。

    for (int i = mylist.size() - 1; i >= 0; i--) {

if (mylist.get(i) matches a certain pattern) {


CustomElement helper = mylist.get(i);
mylist.remove(i);
mylist.add(0, helper);
i++;
}
}

最佳答案

是的,可以在 for 循环中修改 i ,如果不可能,您就不会得到这个无限循环。

一定会发生的情况是,如果 (mylist.get(i) 匹配特定模式) 在某个点之后继续为 true,并且您永远不会到达 i >= 0 不成立。

因此,如果 myList.get(0) 与您的模式匹配,您只需将其放回索引 0 处,并永远继续检查它。

关于java - 是否可以更改 for 循环内的计数器变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22307522/

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