相信大家都使用過for去實現ArrayList的迭代。是很方便的一個功能,能夠這樣實現的原因是這些類都繼承terator接口。編譯期間編譯器將for的迭代轉化爲for循環的實現形式。具體我們下面看一下
這是使用的代碼
public class Main5{
public static void main(String ...arg) throws Exception{
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i:list){
System.out.println(i);
}
}
}
使用jad對上面代碼的class文件反編譯後結果如下
import java.util.Iterator;
public class Main5
{
public Main5()
{
}
public static transient void main(String arg[])
throws Exception
{
ArrayList list = new ArrayList();
int i;
for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(i))
i = ((Integer)iterator.next()).intValue();
}
}