天天看点

Map遍历的四种方式Map遍历的四种方式

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快一倍左右。