Java基礎學習01——Map遍歷Map.Entry
阿新 • • 發佈:2018-11-12
問題描述
前些天遇到了一個疑問,今天終於驗證了一下,現在記錄下來。
問題是這樣的,大家遍歷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是同一個物件。