每个构造对数组也有效。例如:
String[] fruits = new String[] { "Orange", "Apple", "Pear", "Strawberry" };
for (String fruit : fruits) {
// fruit is an element of the `fruits` array.
}
这基本上等同于
for (int i = 0; i < fruits.length; i++) {
String fruit = fruits[i];
// fruit is an element of the `fruits` array.
}
所以,总体总结:
[nsayer]以下是正在发生的事情的更长形式:
for(Iterator<String> i = someList.iterator(); i.hasNext(); ) {
String item = i.next();
System.out.println(item);
}
请注意,如果您需要使用 i.remove();在你的循环中,或者以某种方式访问实际的迭代器,你不能使用for( : )习语,因为实际的迭代器只是推断出来的。
[丹尼斯·布埃诺]
nsayer的答案暗示了这一点,但值得注意的是,当“someList”是实现java.lang.Iterable的任何东西时,OP的for(..)语法将起作用 - 它不必是一个列表,或者来自java.util的某个集合。因此,即使是您自己的类型也可以与此语法一起使用。