将foreach循环转换为for循环

问题描述:

我对Java真的很陌生,想知道是否有人可以帮助我将以下内容转换为foreach for循环for循环?将foreach循环转换为for循环

假设表达式是项目的集合:

for(Type x: expression){ 
    ... 
    for(Type y: x.expression){ 
    ..... 
    } 
} 
+0

如果'x'是一个'int',那就没有意义了。根据这个代码''x'应该是可以迭代的。 – SHG

+0

问题中的代码不会编译('for(int y:x){...}'),因为'x'是一个'int'。这个代码是你刚刚想出来的还是你从某处复制的? – Radiodef

+1

我只是在我正在处理的其他事情之后建模循环,正在寻找一个通用解决方案。编辑不同类型的条件 – TestNInja

expression需求是某种物品的收藏。 for (Type item : items)循环只是遍历所有这些循环。

要手动循环在你只需要收集的长度和可以使用集合:

for (int i = 0; i < collection.size(); i++) { // or .length() if it is an array 
    Type item = collection.get(i); // or collection[i] if it is an array 
} 

Type需要在集合中的项目的类型。

+0

如何在这种情况下嵌套的foreach循环工作? – TestNInja

+1

嗯,只是将它们嵌套在一起。如果'Type'是另一个集合,它将以同样的方式工作。只需使用'i'(例如'j')以外的嵌套循环,否则它将被覆盖。 – schrej

+1

增强的'for'语句不会被编译器转换为带有索引变量的'for'循环,因为它不会对非基于数组的列表执行操作,甚至不能用于其他类型的集合,因为它们没有'get(int)'方法。 – Andreas