大家都在用的Map的這兩種遍歷方式(keySet和entrySet)

【Map遍歷的兩種常見方式】keySet 和 entrySet

前邊甭說其他了

沒有開場白、直接看代碼

hh

1、使用keyset進行遍歷:


		Map<String,String> map1=new HashMap<String, String>();
        map1.put("one","zhangsan");
        map1.put("two","lisi");
        map1.put("three","wangwu");

        //獲取map1中的所有key
        Set<String> keySet = map1.keySet();
        //通過迭代器遍歷集合
        Iterator<String> iterator = keySet.iterator();
        while (iterator.hasNext()){
		//這裏hasNext稍作解釋,如果仍有元素可以迭代,則返回 true。(換句話說,如果 next 返回了元素而不是拋出異常,則返回 true)。【此處引用爲JavaSEAPI解釋】
            String key = iterator.next();//得到每一個key
            String value = map1.get(key);//通過key得到value
            System.out.println("map1的鍵爲:"+key+",map1的值爲:"+value);
        }

2、使用entryset進行遍歷

  Map<String,String> map2=new HashMap<String, String>();
        map2.put("one","zhangsan");
        map2.put("two","lisi");
        map2.put("three","wangwu");

        Set<Map.Entry<String, String>> entries = map2.entrySet();
        /**
         * Map.entrySet迭代器會生成EntryIterator,其返回的實例是一個包含key/value鍵值對的對象。
         * 而keySet中迭代器返回的只是key對象,還需要到map中二次取值。故entrySet要比keySet快一倍左右。
         */
        Iterator<Map.Entry<String, String>> iterator1 = entries.iterator();
        while (iterator1.hasNext()){
            Map.Entry<String, String> stringEntry = iterator1.next();//迭代出來的是每一個實例的對象,包含鍵值對
            //從實例對象stringEntry中可直接拿取Key/Value
            String key = stringEntry.getKey();
            String value = stringEntry.getValue();
            System.out.println();
            System.out.println("map2的鍵爲:"+key+",map2的值爲:"+value);
        }

總結:

​ 1、keySet獲取value只能通過先獲取key才能得到value

​ 2、entrySet在迭代之後可以直接從迭代出來的實例對象中直接獲取Key和Value

​ 3、兩個方法遍歷的結果都一樣,若對查詢速度有要求就選entrySet(),entrySet可以提高性能。

簡單瞭解Map的這兩種遍歷方式,先知道怎麼用,後期根據居具體情況再深入研究吧。


最後格言: 堅持夢想、不要放棄、是金子總會發光

​ 加油!!總有一天你會成功

img

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章