我正在尝试确定foreach
嵌套在另一个 foreach 循环内的循环中的当前对象是否都在ArrayList
迭代相同的对象,它们当前是否都在对同一个对象进行迭代。由于 foreach 循环的约定,似乎没有一种简单的方法可以获取 ArrayList 中对象的当前索引,以便能够比较当前对象是否相等。continue
本质上,如果两个 foreach 循环当前都在迭代同一个对象,我想在内部 foreach 循环中覆盖当前对象。
例如,给定一个ArrayList<Object>
命名objects
:
for (Object a : objects) {
for (Object b : objects) {
//If both loops are currently iterating over the same object
//from the ArrayList objects, skip to the next iteration of the inner
//foreach loop
if (a == b) {
continue;
}
//If both foreach loops are not iterating over the same object
//execute some operation
}
}
是使用==
运算符来测试当前正在迭代的两个对象是否是同一个可靠对象,还是简单地使用常规for
循环并根据它们的索引比较对象更好?