1. 程式人生 > >Java基礎學習01——Map遍歷Map.Entry

Java基礎學習01——Map遍歷Map.Entry

問題描述

前些天遇到了一個疑問,今天終於驗證了一下,現在記錄下來。

問題是這樣的,大家遍歷Map的時候用Map.Entry,通過Map.Entry獲取到key和value,與存入Map當中的key和value是同一個物件嗎?

為了驗證一下這個問題我寫了如下程式碼:

public static void main(String[] args) {
        Map<String, List<String>> map = new HashMap();
        List<String> stringList = new ArrayList<>();
        stringList.add("a");
        map.put("1", stringList);
        //關鍵在這獲取到entrySet
        Set<Map.Entry<String, List<String>>> entrySet = map.entrySet();
        //遍歷,並修改list的值
        for (Map.Entry<String, List<String>> m : entrySet) {
            List<String> l = m.getValue();
            //MapEntry中list的值
            l.add("b");
        }
        //獲取map中的list,看一下值是否改變?
        List<String> list = map.get("1");
        System.out.println(list);
    }

來大家說一下你們猜想是什麼樣的?

 

執行結果如下圖


結論

通過Map.Entry獲取到key和value,與存入Map當中的key和value是同一個物件。