增强 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

    }
}

 

posted @ 2018-05-04 19:38  邓不利多  阅读(106)  评论(0编辑  收藏  举报