Jakob Jenkov 2014-06-23
Java 的泛型引入了一种新的 for 循环。这种新 for 循环有时也被称为“for each”循环。它使得遍历泛型集合变得更加简单,例如遍历泛型的 Set 或 List。
以下是一个遍历泛型 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 的键集或值集合中的每个元素)时,该变量会包含当前的元素(当前的整数或字符串)。