Is it possible to nest foreach statements in java and start the nested statement at the current index that the outer foreach loop is at?
So if I have
List myObjList = new ArrayList();
for (myObj o : myObjList){
// how do I start the nested for loop at the current spot in the list?
for(
}
Thanks!
解决方案
Here's a way to do it by keeping track of the index yourself, then using subList to start the inner loop at the right spot:
int i = 0;
for (myObj o1 : myObjList) {
for (myObj o2 : myObjList.subList(i, myObjList.size())) {
// do something
}
i++;
}
I think this is clearer than using basic for loops, but that's certainly debatable. However, both should work, so the choice is yours. Note that if you are using a collection that does not implement List, this will not work (subList is defined on List as the idea of an "index" really only makes sense for lists).