查看JDK的API,Collection的父级接口Iterable
这句话意思:实现此接口允许对象成为增强型 for
语句(有时称为“ for-each循环”语句)的目标。简单说就是可以使用Iterable迭代,就可以使用for-each
格式:
for(类型 变量 : Collection集合 或 数组) { ... ... }
实例一、
List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); for(String item : items){ System.out.println(item); }
传统for和高级for的区别
传统for可以定义控制循环的增量和条件
高级for必须有被遍历的目标。目标只能是数组或Collection集合
map集合不是Iterable<T>接口的子类所以map是无法使用高级for,但是map接口中有两个方法keySet()和entrySet()返回值都是List(是Collection的子级)
所以map集合通过keySet()或entrySet()方法就能使用高级for
实例二、
1 Map<String, Integer> items = new HashMap<>(); 2 items.put("A", 10); 3 items.put("B", 20); 4 items.put("C", 30); 5 items.put("D", 40); 6 items.put("E", 50); 7 items.put("F", 60); 8 9 for (Map.Entry<String, Integer> entry : items.entrySet()) { 10 System.out.println("key : " + entry.getKey() + " value : " + entry.getValue()); 11 } 12 13 for (String key : items.keySet()) { 14 System.out.println("key : " + key + " value : " + entry.get(key)); 15 }