您的位置:首页 > 编程语言 > Java开发

java遍历map的集中用法(执行效率)

2015-08-16 21:09 447 查看
首先,遍历map有以下方法:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class MapTest {

public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "1");
map.put("2", "2");
map.put("3", "3");

// 第一种:通过Map.keySet遍历key和value
System.out.println("通过Map.keySet遍历key和value:");
for (String key : map.keySet()) {
System.out.println("key= " + key + " and value= " + map.get(key));
}

// 第二种:通过Map.entrySet使用iterator遍历key和value
System.out.println("通过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("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}

// 第三种:通过Map.entrySet遍历key和value
System.out.println("通过Map.entrySet遍历key和value:");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= "
+ entry.getValue());
}

// 第四种:通过Map.values()遍历所有的value,但是不能遍历键key
System.out.println("通过Map.values()遍历所有的value:");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}

}
结果如下:

通过Map.keySet遍历key和value:
key= 3 and value= 3
key= 2 and value= 2
key= 1 and value= 1
通过Map.entrySet使用iterator遍历key和value:
key= 3 and value= 3
key= 2 and value= 2
key= 1 and value= 1
通过Map.entrySet遍历key和value:
key= 3 and value= 3
key= 2 and value= 2
key= 1 and value= 1
通过Map.values()遍历所有的value:
value= 3
value= 2
value= 1

这四种方法都可以遍历map:

第一种是目前许多人最喜欢的一种方式,因为代码最少,看起来最简单,通过遍历keySet,再将key所对应的value查询出来,这里有一个二次取值的过程,所以并不推荐;

第二种和第三种原理是相同的,都是通过遍历Map.Entry的方式,将Entry中的key和value打印出来,第三种是比较推荐写法,因为采用jdk1.5后的遍历形式,代码看起来比较整洁;

第四种比较少用,因为我们大多数时候都是同时需要key和value的

 

综上所述,如果map里面内容比较少,其实采用哪种方式都可以,第一种和第三种相对简洁一些;但是一旦容量非常大时,更推荐采用第三种方式,相比于第一种将极大地节省性能。

 
注:文章参考:http://blog.sina.com.cn/s/blog_694448320100lx8m.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: