JAVA增强for循环

增强for循环是for的一种新用法!用来循环遍历数组和集合。
1、增强for的语法

for(元素类型 e : 数组或集合对象) {
}

例如:

int[] arr = {1,2,3};
for(int i : arr) {//i的值从数组的第一个元素一直到最后一个元素!
    System.out.println(i);
}

增强for的冒号左边是定义变量,右边必须是数组或集合类型。例如上例中循环遍历的主浊arr这个int数组,增强for内部会依次把arr中的元素赋给变量i。
2、增强for的优缺点
只能从头到尾的遍历数组或集合,而不能只遍历部分;
在遍历List或数组时,不能获取当前元素下标;
增强for使用便简单,这是它唯一的优点了;
增强for比使用迭代器方便一点!
3、增强for原理
任何实现了Iterable接口的类,都有返回Iterator的方法。
其实增强for底层是迭代器,任何实现了Iterable接口的类都可以使用增强for来遍历!

其实增强for内部是使用迭代器完成的!也就是说,任何实现了Iterable接口的对象都可以被增强for循环遍历!这也是为什么增强for可以循环遍历集合的原因(Collection是Iterable的子接口)。
但要注意,Map并没有实现Iterable接口,所以你不能直接使用增强for来遍历它

Map map = new HashMap();
map.put("1", "one");
map.put("2", "two");
map.put("3", "three");
//循环遍历map的所有键,map.keySet()返回的是Set类型,而Set是可以被增强for遍历的        
for(String key : map.keySet()) {
    String value = map.get(key);
    System.out.println(key + "=" + value);
}

你可能感兴趣的:(JAVA增强for循环)