今天学习的时候发现用增强for循环能对数组进行遍历,可是增强for循环底层不是基于迭代器实现的吗?我查了文档没看到array实现iterable接口啊,请各位前辈指教
你可以理解为对于数组,foreach 循环实际上还是用的普通的 for 循环。对于集合,foreach 循环实际上是用的 iterator 迭代器迭代。
假设创建一个ArrayList列表,再去实现Iterator接口,实现前记得先导Iterator包,可以参考下面我刚写的代码,希望能帮到你
package 测试1;
import java.util.ArrayList;
import java.util.Iterator;
public class 测试 {
public static void main(String[] args) {
ArrayList <Integer>al=new ArrayList<Integer>();
int i;
for(i=0;i<5;i++)
al.add(i);
Iterator <Integer>it=al.iterator();
while(it.hasNext()) {
System.out.println(it.next()+" ");
}
}
}
貌似在处理for循环的时候数组作为特例来处理了
参考
摘要:
for循环的处理方式
for (Iterator #i = l.iterator(); #i.hasNext(); ) {
float #i0 = (Integer)#i.next();
...
数组的处理方式
for (int #i = 0; #i < #a.length; #i++) {
{VariableModifier} TargetType Identifier = #a[#i];
Statement
}