Java 如何在while循环结束后调用它

Java 如何在while循环结束后调用它,java,arraylist,Java,Arraylist,我的代码中有一个do…while循环,我被它卡住了。 问题是,该条件是两个arraylist之间的比较,因此它第一次运行,然后该条件返回false,但之后我将数字添加到其中一个arraylist(当然程序正在运行),这使两个arraylist相等,现在我想继续循环,但我不知道怎么做 如有任何建议,将不胜感激:) 您是否考虑过将此循环嵌套到另一个循环中?通过这种方式,您可以在某些情况下再次通过它并退出外部循环。您不能。循环结束后,将对以下语句进行求值,即使条件为真,也不会重新访问该循环。您可能希望

我的代码中有一个do…while循环,我被它卡住了。 问题是,该条件是两个arraylist之间的比较,因此它第一次运行,然后该条件返回false,但之后我将数字添加到其中一个arraylist(当然程序正在运行),这使两个arraylist相等,现在我想继续循环,但我不知道怎么做

如有任何建议,将不胜感激:)


您是否考虑过将此循环嵌套到另一个循环中?通过这种方式,您可以在某些情况下再次通过它并退出外部循环。

您不能。循环结束后,将对以下语句进行求值,即使条件为真,也不会重新访问该循环。您可能希望在循环中添加一个元素

如果达到此条件,您将得到一个无限循环。无法理解为什么要实现此逻辑

要实现这一点,可以将do..while循环提取到单独的私有方法中,并将两个ArrayList作为参数传递给该方法。(取决于循环中需要的其他详细信息。)调用此方法两次,逻辑是在两次调用之间向列表中的一个添加元素。差不多

private void executeDoWhile(List arrayList1, List arrayList2)
{
  do{ ....   } while (arrayList1.equals(arrayList2);
}

main()
{
....
//call 1
executeDoWhile(arrayList1, arrayList2);

//logic to add the elements

//call 2
executeDoWhile(arrayList1, arrayList2);
}

你所说的使两个arraylist相等的
是什么意思?你的意思是它们的大小相等?你需要找到一个不同的条件来停止循环。如果希望循环在列表不相等的情况下运行,则不能将其作为停止的条件。您正在使用
ArrayList1.equals(ArraList2)
。你重写了equals方法了吗?没有,它使它们完全相同,在这个循环的第二次运行之后,arraylist将再次更改。。西蒙说,这就像一个记忆游戏。也许我会找到另一种方法把这个游戏应用到工作中
private void executeDoWhile(List arrayList1, List arrayList2)
{
  do{ ....   } while (arrayList1.equals(arrayList2);
}

main()
{
....
//call 1
executeDoWhile(arrayList1, arrayList2);

//logic to add the elements

//call 2
executeDoWhile(arrayList1, arrayList2);
}