天天看點

List和Map集合的幾種周遊方式List集合的周遊Map集合的周遊

List和Map集合的幾種周遊方式

  • List集合的周遊
    • 一,通過Itetator接口周遊:
    • 二,foreach循環周遊
  • Map集合的周遊
    • 方式一
    • 方式二
    • 方式三

List集合的周遊

一,通過Itetator接口周遊:

    Itetator主要用于周遊Collection中的元素,它也被稱為疊代器

執行個體:

public class Exception01 {
    public static void main(String[] args) {
        //建立ArrayList集合
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("張三");
        arrayList.add("李四");
        arrayList.add("王二");
        arrayList.add("麻子");
        Iterator<String> iterator = arrayList.iterator();//獲得Iterator對象
        while(iterator.hasNext()){//判斷該集合是否有下一個元素
            String next = iterator.next();//如果有取出來
            System.out.println(next);//列印輸出
        }
    }
}
           

在使用iterator疊代集合的元素是,如果你調用了集合對象的remove()方法删除元素時,會出現異常,如下執行個體:

public class Exception01 {
    public static void main(String[] args) {
        //建立ArrayList集合
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("張三");
        arrayList.add("李四");
        arrayList.add("王二");
        arrayList.add("麻子");
        Iterator<String> iterator = arrayList.iterator();//獲得Iterator對象
        while(iterator.hasNext()){//判斷該集合是否有下一個元素
            String next = iterator.next();//如果有取出來
            if ("張三".equals(next)){
                arrayList .remove(next);//此處的remove()方法是集合内部的方法
            }
            System.out.println(next);//列印輸出
        }

    }
}
           

運作結果:

List和Map集合的幾種周遊方式List集合的周遊Map集合的周遊

該如何解決這個問題,我們隻需要調用疊代器的remove()即可。将上面的代碼arrayList .remove(next);替換成iterator.remove();即可正常運作。

二,foreach循環周遊

    jdk1.5提供的foreach循環,該循環是一個更加簡潔的for循環,也稱為增強for循環。

public class Exception01 {
    public static void main(String[] args) {
        //建立ArrayList集合
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("張三");
        arrayList.add("李四");
        arrayList.add("王二");
        arrayList.add("麻子");
        //for(容器元素的類型 臨時變量:容器變量){}
        for (String arr : arrayList) {
            System.out.println(arr);
        }
    }
}
           

Map集合的周遊

方式一

    先周遊所有key,再根據key取值

執行個體:

public class Exception05 {
    public static void main(String[] args) {
        //建立一個map
        Map hashMap = new HashMap();
        //通過put(key, value)方法存儲
        hashMap.put("name1", "張一");
        hashMap.put("name2", "張二");
        hashMap.put("name3", "張三");
        hashMap.put("name4", "張四");
        Set keySet = hashMap.keySet();//獲得鍵的集合
        Iterator iterator = keySet.iterator();//疊代集合
        while (iterator.hasNext()){//判斷是否有下一個key
            Object key = iterator.next();//取出key
            Object value = hashMap.get(key);//根據key取值
            System.out.println(key +":"+ value);
        }
    }
}
           

方式二

map集合中提供的有一個values()方法,通過這個方法可以直接獲得map中存儲所有值的    Collertion集合。

執行個體:

public class Exception05 {
    public static void main(String[] args) {
        //建立一個map
        Map hashMap = new HashMap();
        //通過put(key, value)方法存儲
        hashMap.put("name1", "張一");
        hashMap.put("name2", "張二");
        hashMap.put("name3", "張三");
        hashMap.put("name4", "張四");
        Collection values = hashMap.values();
        Iterator iterator = values.iterator();
        while (iterator.hasNext()){
            Object value = iterator.next();
            System.out.println(value);
        }
    }
}
           

方式三

    通過for循環實作map集合的周遊

public class Exception05 {
    public static void main(String[] args) {
        //建立一個map
        Map<String,String> hashMap = new HashMap<String,String>();
        //通過put(key, value)方法存儲
        hashMap.put("name1", "張一");
        hashMap.put("name2", "張二");
        hashMap.put("name3", "張三");
        hashMap.put("name4", "張四");
       for (Map.Entry<String,String> map : hashMap.entrySet()){
           String key = map.getKey();
           String value = map.getValue();
           System.out.println(key + ":" + value);
       }
    }
}
           

加油吧!!!