每个人

Version >= Java SE 5

使用 Java 5 及更高版本,可以使用 for-each 循环,也称为增强型 for 循环:

List strings = new ArrayList();
        
strings.add("This");
strings.add("is");
strings.add("a for-each loop");
        
for (String string : strings) {
    System.out.println(string);
}

因为每个循环都可以用于遍历数组Iterable接口的实现,后者包括集合类,例如 ListSet

循环变量可以是可从源类型分配的任何类型。

用于 Iterable<T>T[] 的增强 for 循环的循环变量可以是 S,if 的类型

  • T extends S
  • TS 都是原始类型,并且可以在没有强制转换的情况下进行分配
  • S 是一种原始类型,T 可以在拆箱转换后转换为可分配给 S 的类型。
  • T 是一种原始类型,可以通过自动装箱转换转换为 S

例子:

T elements = ...
for (S s : elements) {
}
T S 编译
int[] long
long[] int 没有
Iterable<Byte> long
Iterable<String> CharSequence
Iterable<CharSequence> String 没有
int[] long 没有
int[] Integer