Entry
由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系。
Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也就是一个Entry)
Map.Entry里面包含getKey()和getValue()方法
1 2 3 4 5 6 7
| 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的一种方法.
即通过getKey()得到K,getValue得到V。
1 2 3 4 5 6 7
| Set<Map.Entry<String, String>> entryseSet=map.entrySet(); for (Map.Entry<String, String> entry:entryseSet) { System.out.println(entry.getKey()+","+entry.getValue()); }
|
keySet
还有一种是keySet, keySet是键的集合,Set里面的类型即key的类型
1 2 3 4 5 6 7
| Set<String> set = map.keySet(); for (String s:set) { System.out.println(s+","+map.get(s)); }
|
value
通过使用map的value方法进行遍历
$\color{red}{不能遍历key}$
1 2 3 4
| for (String v : map.values()) { String value = v; System.out.println(value); }
|
四种遍历Map方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| 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); } }
|