我在 ArrayList 中有一些对象,我想执行碰撞检测等。可以这样做吗:
List<Person> A;
iterA0 = A.iterator();
while (iterA0.hasNext()) {
Person A = iterA.next();
iterA1 = A.iterator();
while (iterA1.hasNext()){
Person B = iterA1.next();
A.getsDrunkAndRegretsHookingUpWith(B);
}
}
这一定是糟糕的编码,对吧?我将如何正确执行此嵌套迭代?
最佳答案
您可以同时多次迭代同一个列表,只要它在任何迭代期间都没有被修改。例如:
List<Person> people = ...;
for (Person a : people) {
for (Person b : people)
a.getsDrunkAndRegretsHookingUpWith(b);
}
只要 getsDrunkAndRegretsHookingUpWith
方法不更改 people
列表,就没有问题。
关于java - 可以在同一列表的另一个迭代中迭代列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5762142/