Java 的泛型 for 循环

更新于 2025-12-28

Jakob Jenkov 2014-06-23

Java 的泛型引入了一种新的 for 循环。这种新 for 循环有时也被称为“for each”循环。它使得遍历泛型集合变得更加简单,例如遍历泛型的 SetList

以下是一个遍历泛型 List 的简单示例:

List<String> list = new ArrayList<String>();
for(String aString : list) {
    System.out.println(aString);
}

注意,在 for 循环的括号中声明了一个 String 类型的变量。在每次迭代(即列表中的每个元素)时,该变量都会包含当前的元素(当前的字符串)。

下面是一个使用 Set 的示例:

Set<String> set = new HashSet<String>();
for(String aString : set) {
    System.out.println(aString);
}

可以看到,这个 for 循环与用于 List 的写法完全相同。

再来看一个 Map 的示例:

Map<Integer, String> map = new HashMap<Integer, String>();
// ... 向 Map 中添加键值对

for(Integer aKey : map.keySet()) {
    String aValue = map.get(aKey);
    System.out.println("" + aKey + ":" + aValue);
}

for(String aValue : map.values()) {
    System.out.println(aValue);
}

注意,在这两个 for 循环的括号中分别声明了一个 Integer 和一个 String 变量。在每次迭代(即遍历 Map 的键集或值集合中的每个元素)时,该变量会包含当前的元素(当前的整数或字符串)。