先实例化一个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);
}
具体使用哪种方式,要看实际的应用场景决定的。
网友评论