增强 for循环
引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!
因此JDK5中定义了一种新的语法——增强for循环,以简化此类操作。增强for循环只能用在数组、或实现Iterator接口的集合类上
语法格式:
for(变量类型变量 :需迭代的数组或集合){
}
map的两种取数据方式:
package testFor; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Demo1 { public static void main(String args[]){ Map map=new HashMap(); //Map map2=new LinkedHashMap<K, V>(); map.put("1", "aaa"); map.put("2", "bbb"); map.put("3", "ccc"); //传统方式1 Set set=map.keySet(); Iterator it=set.iterator(); while(it.hasNext()){ String key=(String)it.next(); String value=(String) map.get(key); System.out.println("key="+key+",value="+value); } //增强for循环的1种方式 for(Object obj:map.keySet()){ String key2=(String)obj; String value2=(String)map.get(key2); System.out.println("key2="+key2+",value2="+value2); } //传统方式2 Set set2=map.entrySet(); Iterator it2=set2.iterator(); while(it2.hasNext()){ Map.Entry entry=(Entry)it2.next(); System.out.println("key="+entry.getKey()+",value="+entry.getValue()); } //增强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 } }