增强for循环的实现原理是实现了Iterable接口
下面我们自己写一个demo类去实现接口。
package _JDK1_5新特性;
import java.util.Iterator;
/**
* 原理 :
* 任何实现了iterable接口的类,都有返回iterator的方法,
* 也就是说其实增强for循环的底层是迭代器,任何实现了iterable接口的类都可以使用增强for循环来遍历。
*
* @author buder_cp
*
*/
public class demo implements Iterable {
private String bat;
public demo(String bat) {
this.bat = bat;
}
/**
* 实现Iterable接口,必须实现iterator()方法
*/
@Override
public Iterator iterator() {
return new Iterator() {
private String[] demoArray = bat.split(" ");
private int index = 0;
public boolean hasNext() {
return index < demoArray.length;
}
public String next() {
return demoArray[index++];
}
};
}
public static void main(String[] args) {
demo d = new demo("123 456 789 999");
for (String s : d) {
System.out.println(s);
}
}
}