1.Map.Entry 和 Map.entrySet()分别是什么?
Map.entrySet():根据名字便可知道,这是一个集合,是一个映射项的set。
Map.Entry<k,v>:是一个接口,表示的是一个映射项(包含key和value)。这个接口有getKey()和getValue()方法。
所以,两者之间的关系就是: Map.entrySet()这个集合里面是 一个个的Map.Entry<k,v>。现在再看这两个名字也就更好理解了。
2.如何利用他们遍历map?
1 2 package edu.smc.test; 3import java.util.HashMap; 5 import java.util.Iterator; 6 import java.util.Map; 7 import java.util.Map.Entry; 8 public class TestEntrySet { 10 public static void main(String[] args) { 11 Map<String,String> map=new HashMap<String,String>(); 12 map.put("1", "张三"); 13 map.put("2", "李四"); 14 map.put("3", "王五"); 15 System.out.println("方法一:"); 17 Iterator iterator=map.entrySet().iterator(); 18 while(iterator.hasNext()){ 19 Map.Entry<String, String> entry= (Entry<String, String>) iterator.next(); 20 System.out.println("key:"+entry.getKey()+" value"+entry.getValue()); 21 } 22 System.out.println("方法二:"); 24 for (Map.Entry<String, String> m : map.entrySet()) { 25 System.out.println("key:"+m.getKey()+" value"+m.getValue()); 26 } 27 } 28 }