基本语法:
for(declaration : expression)
statement
要点:
- expression必须是数组或实现java.lang.Iterable接口的对象。
- declaration声明的变量类型与数组类型或Iterable元素兼容(父类),未参数化则为Object
两个接口Iterable<E>和Iterator<E>:
- Iterator<E>:
定义了迭代集合元素的方法接口。其中next()方法取得“下一个”集合元素,hasNext()方法检查是否到集合“尾部”,remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素。public interface Iterator<E> { boolean hasNext(); E next(); void remove(); }
- Iterable<E>:
定义了返回java.util.Iterator<E>对象方法的接口。public interface Iterable<E> { java.util.Iterator<E> iterator(); }
实例:
import java.util.HashSet;
import java.util.Set;
public class ForeachDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] primes = new int[] {2, 3, 5, 7};
for (int n : primes) //数组
System.out.print(n + " ");
System.out.println();
Set<String> wordSet = new HashSet<String>();
for (String word : args) {
System.out.print(word + " ");
wordSet.add(word);
}
System.out.println();
for (String word : wordSet) //对象
System.out.print(word + " ");
}
}
思考:
什么是接口?接口就是定义了一系列需要实现的方法。