Entry
由於Map中存放的元素均為鍵值對,故每一個鍵值對必然存在一個映射關系。
Map中采用Entry內部類來表示一個映射項,映射項包含Key和Value (我們總說鍵值對鍵值對, 每一個鍵值對也就是一個Entry)
Map.Entry里面包含getKey()和getValue()方法
-
Iterator<Map.Entry<Integer, Integer>> it=map.entrySet().iterator(); while(it.hasNext()) { Map.Entry<Integer,Integer> entry=it.next(); int key=entry.getKey(); int value=entry.getValue(); System.out.println(key+" "+value); }
-
entrySet
entrySet是 java中 鍵-值 對的集合,Set里面的類型是Map.Entry,一般可以通過map.entrySet()得到。
- entrySet實現了Set接口,里面存放的是鍵值對。一個K對應一個V。
用來遍歷map的一種方法。
-
Set<Map.Entry<String, String>> entryseSet=map.entrySet(); for (Map.Entry<String, String> entry:entryseSet) { System.out.println(entry.getKey()+","+entry.getValue()); }
-
即通過getKey()得到K,getValue得到V。
keySet
還有一種是keySet, keySet是鍵的集合,Set里面的類型即key的類型
-
1 Set<String> set = map.keySet(); 2 3 4 5 for (String s:set) { 6 7 8 9 System.out.println(s+","+map.get(s)); 10 11 12 13 }
-
四種遍歷Map方式:
-
1 public static void main(String[] args) { 2 3 4 5 Map<String, String> map = new HashMap<String, String>(); 6 7 map.put("1", "value1"); 8 9 map.put("2", "value2"); 10 11 map.put("3", "value3"); 12 13 14 15 //第一種:普遍使用,二次取值 16 17 System.out.println("通過Map.keySet遍歷key和value:"); 18 19 for (String key : map.keySet()) { 20 21 System.out.println("key= "+ key + " and value= " + map.get(key)); 22 23 } 24 25 26 27 //第二種 28 29 System.out.println("通過Map.entrySet使用iterator遍歷key和value:"); 30 31 Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); 32 33 while (it.hasNext()) { 34 35 Map.Entry<String, String> entry = it.next(); 36 37 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 38 39 } 40 41 42 43 //第三種:推薦,尤其是容量大時 44 45 System.out.println("通過Map.entrySet遍歷key和value"); 46 47 for (Map.Entry<String, String> entry : map.entrySet()) { 48 49 System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); 50 51 } 52 53 54 55 //第四種 56 57 System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key"); 58 59 for (String v : map.values()) { 60 61 System.out.println("value= " + v); 62 63 } 64 65 }