引入增强for 循环的原因:在JDK5 以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!
因此JDK5 中定义了一种新的语法——增强for 循环,以简化此类操作。 增强for 循环只能用在数组、或实现Iterator接口的集合类上
因此JDK5 中定义了一种新的语法——增强for 循环,以简化此类操作。 增强for 循环只能用在数组、或实现Iterator接口的集合类上
for(变量类型变量:需迭代的数组或集合){
}
例子
Map map=new HashMap();
//Map map2=new LinkedHashMap<K, V>();
map.put("1", "aaa");
map.put("2", "bbb");
map.put("3", "ccc");
for(Object obj:map.keySet()){
String key2=(String)obj;
String value2=(String)map.get(key2);
System.out.println("key2="+key2+",value2="+value2);
}
//增强for 循环的2 种方式
for(Object obj:map.entrySet()){
Map.Entry entry3=(Entry) obj;
String key3=(String) entry3.getKey();
String value3=(String) entry3.getValue();
System.out.println("key3="+key3+",value3="+value3);
}
//增强for 循环需要注意的问题:只适合取数据
int arr[]={1,2,3};
for(int i: arr){
i=10;
}
System.out.println(arr[0]); // 1
List li=new ArrayList();
li.add("1");
for(Object obj : li){
obj="888";
}
System.out.println(li.get(0));// 1