Map遍历的四种方式
首先 建立一个Map
Map<String, String> map = new HashMap<String, String>();
map.put("1", "value1");
map.put("2", "value2");
map.put("3", "value3");
第一种方式:使用 Map.KeySet() ,二次取值 效率比第二种第三种慢一倍
for(String key:map.KeySet()){
System.out.println(key+map.get(Key));
}
第二种方式(推荐):通过Map.entrySet遍历Key和Value(无法在for循环时实现remove等操作)
for(Map.Entry<String,String> entry:map.entrySet()){
System.out.println(entry.getKey()+entry.getValue());
}
第三种方式: 通过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(entry.getKey(),entry.getValue());
}
第四种:只能获取Value:不能获取Key
for(String v:map.values()){
System.out.println(v);
}
注意:
Map.entrySet迭代器会生成EntryIterator,其返回的实例是一个包含key/value键值对的对象。而keySet中迭代器返回的只是key对象,还需要到map中二次取值。故entrySet要比keySet快一倍左右。