gpt4 book ai didi

java - 删除元素后从头开始检查 arraylist

转载 作者:行者123 更新时间:2023-12-01 17:54:38 25 4
gpt4 key购买 nike

获取元素列表:

String[] temp = new String[]{"NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"};
ArrayList<String> list = new ArrayList<>(Arrays.asList(temp));

从 ArrayList 中删除元素后,我需要返回到循环的开头

删除元素“NORTH”“SOUTH”(如果它们连续):

for (int i = 0; i < list.size() - 1 ; i++) {

if (list.get(i).equals("NORTH") && list.get(i + 1).equals("SOUTH")) {
list.remove(i);
list.remove(i);
}
if (list.get(i).equals("SOUTH") && list.get(i + 1).equals("NORTH")) {
list.remove(i);
list.remove(i);
}

上面的代码删除元素“NORTH”“SOUTH”,并继续检查元素,但条件是:

    if (list.get(i).equals("SOUTH") && list.get(i + 1).equals("NORTH")) {
list.remove(i);
list.remove(i);
}

删除元素后我需要返回到第一个条件。

怎么做?

最佳答案

最简单的方法是将 i 减 1 并继续循环,因此在下一轮中,当 i 递增时,您将回到第一个循环ifi 与之前相同:

for (int i = 0; i < list.size() - 1 ; i++) {
if (…) {
list.remove(i);
list.remove(i);
i--;
continue;
}
if (…) {
list.remove(i);
list.remove(i);
i--;
continue;
}
}

或者,如果您不想使用 continue 语句,则可以使用 else-if,这样 i-1 就不会执行第二个条件:

for (int i = 0; i < list.size() - 1 ; i++) {
if (…) {
list.remove(i);
list.remove(i);
i--;
}
else if (…) {
list.remove(i);
list.remove(i);
i--;
}
}

关于java - 删除元素后从头开始检查 arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60742988/

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