Java学习之高级foreach

查看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 }
原文地址:https://www.cnblogs.com/WarBlog/p/12119627.html