遍历Map集合的两种方式:
1、用KeySet
Map.keySet(),返回一个存放所有key的set集合,通过遍历集合,根据key值取出所有的value值。
Map<String,String> testMap1 = new HashMap<String,String>();
testMap1.put("keyA","valueA");
testMap1.put("keyB","valueB");
testMap1.put("keyC","valueC");
Set keys = testMap1.keySet();//存放key的set
if(keys != null){
for(String key : keys){//遍历set
System.out.println("key="+key+",value="+testMap1 .get(key));
}
}
2、用java.util.Map.Entry
Map.Entry 接口中有相应的getKey和getValue方法,可直接从一个映射向中取出key和value
Map<String,String> testMap2 = new HashMap<String,String>();
testMap2.put("keyA","valueA");
testMap2.put("keyB","valueB");
testMap2.put("keyC","valueC"); //方法一,for循环遍历
for(Map.Entry<String,String> mapEntry : testMap2 .entrySet()){
System.out.println("key=" + mapEntry.getKey() + ",value=" + mapEntry .getValue());
} //方法二,用Iterator()迭代器
Iterator iterator = testMap2.entrySet().iterator();
while(iterator .hasNext()){
Map.Entry<String,String> entry = (Entry<String,String> )iterator.next();
System.out.println("key="+entry .getKey()+",value="+entry .getValue() );
}
3、总结:Map.Entry相比于KeySet的好处在于可以直接取出key和value,而不必先取出所有的key,在根据key去map中取value值。