map的几种遍历方式

2020-07-20  本文已影响0人  看尽繁华这京城

先实例化一个map

Map<String,String> map = new HashMap<String,String>(){{
    put("coler","红色");
    put("light","红灯");
}};

1、如果只需要map中的key或者value,可以使用下面这种方式

//只查里面的key
for(String key : map.keySet()){
    System.out.println(key);
}
//只查里面的value
for(String value : map.values()){
    System.out.println(value);
}

2、如果键、值都需要的话,可以选择for循环和迭代器iterator两种方式

(1)for循环遍历map,利用Entry直接拿到里面的键值遍历

for(Map.Entry<String, String> mapEntry : map.entrySet()){
    String mapKey = mapEntry.getKey();
    String mapValue = mapEntry.getValue();
    System.out.println(mapKey+":"+mapValue);
}

(2)这种是先拿到key,然后从map中取值,由于要频繁的操作map取值,相率自然不高,不推荐这种方式遍历;

for(String key : map.keySet()){
    String value = map.get(key);
    System.out.println(key+":"+value);
}

(3)使用迭代器遍历map,与entry的效果一样,就是代码多点,具体的效率没有分析,有兴趣的可以比较一下这两种方式的效率;

Iterator<Entry<String, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
    Entry<String, String> entry = iterator.next();
    String key = entry.getKey();
    String value = entry.getValue();
    System.out.println(key+":"+value);
}

具体使用哪种方式,要看实际的应用场景决定的。

上一篇下一篇

猜你喜欢

热点阅读