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的類型
Set<String> set = map.keySet(); for (String s:set) { System.out.println(s+","+map.get(s)); }
四種遍歷Map方式:
public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一種:普遍使用,二次取值 System.out.println("通過Map.keySet遍歷key和value:"); for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); } //第二種 System.out.println("通過Map.entrySet使用iterator遍歷key和value:"); Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } //第三種:推薦,尤其是容量大時 System.out.println("通過Map.entrySet遍歷key和value"); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); } //第四種 System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key"); for (String v : map.values()) { System.out.println("value= " + v); } }