Java1.5语法糖的味道--增强for循环

增强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);
		}
	}
}

Java1.5语法糖的味道--增强for循环_第1张图片

你可能感兴趣的:(Java基础,iterator,迭代器)