java中嵌套的foreach语句

use*_*195 3 java foreach for-loop

是否可以在java中嵌套foreach语句并在外部foreach循环所在的当前索引处启动嵌套语句?

所以,如果我有

List<myObj> myObjList = new ArrayList<myObj>();

for (myObj o : myObjList){
    // how do I start the nested for loop at the current spot in the list?
    for(

}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Rei*_*eus 6

否.增强型for循环隐藏了循环的当前索引.您需要使用使用索引的基本for循环.


Tim*_* S. 5

这是一种方法,可以通过自己跟踪索引,然后subList在正确的位置启动内部循环来实现:

int i = 0;
for (myObj o1 : myObjList) {
    for (myObj o2 : myObjList.subList(i, myObjList.size())) {
        // do something
    }
    i++;
}
Run Code Online (Sandbox Code Playgroud)

我认为这比使用基本for循环更清晰,但这当然是有争议的。然而,两者都应该有效,所以选择权在你。请注意,如果您使用的集合未实现List<E>,则这将不起作用(subList定义List<E>为“索引”的想法实际上只对列表有意义)。