Java中遍历大容量map的正确方法
2010-10-21 04:35:53 来源:WEB开发网核心提示:首先,遍历map有以下方法:import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class MapTest {public static void main(String[] args) {Map<Strin
首先,遍历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后的遍历形式,代码看起来比较整洁;
更多精彩
赞助商链接