Java中遍历Map的常用方法

以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等):

方式一(推荐):

 1 // 推荐
 2 // 在for-each循环中使用entries来遍历
 3 // 注意:for-each循环在Java 5中被引入所以该方法只能应用于java 5或更高的版本中。
 4 // 如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用。
 5 private static void testMethod1(Map<Integer, String> map) {
 6
 7    // 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
 8    for (Map.Entry<Integer, String> entry : map.entrySet()) {
 9         System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
10    }
11
12 }

方式二:

 1     // 方法二 在for-each循环中遍历keys或values。
 2     // 如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。
 3     // 该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
 4     private static void testMethod2(Map<Integer, String> map) {
 5
 6         // 遍历map中的键
 7         for (Integer key : map.keySet()) {
 8
 9             System.out.println("Key = " + key);
10
11         }
12
13         // 遍历map中的值
14         for (String value : map.values()) {
15
16             System.out.println("Value = " + value);
17
18         }
19
20     }

方式三:

 1     // 方法三使用Iterator遍历
 2     // 本方式有两个好处,一是在老版本java中这是惟一遍历map的方式。另一个好处是,你可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能。
 3     private static void testMethod3(Map<Integer, String> map) {
 4
 5         Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator();
 6
 7         while (entries.hasNext()) {
 8
 9             Map.Entry<Integer, String> entry = entries.next();
10
11             System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
12
13         }
14     }

方式四:

 1     // 方法四、通过键找值遍历(效率低)
 2     // 相当慢且无效率
 3     private static void testMethod4(Map<Integer, String> map) {
 4
 5         for (Integer key : map.keySet()) {
 6
 7             String value = map.get(key);
 8
 9             System.out.println("Key = " + key + ", Value = " + value);
10
11         }
12     }
时间: 2024-10-04 04:48:32

Java中遍历Map的常用方法的相关文章

java中遍历MAP的几种方法

java中遍历MAP的几种方法 Java代码 Map<String,String> map=new HashMap<String,String>();    map.put("username", "qq");    map.put("passWord", "123");    map.put("userID", "1");    map.put("em

JAVA中遍历Map和Set方法,取出map中所有的key

Java遍历Set集合 1.迭代器遍历: Set<String> set = new HashSet<String>(); Iterator<String> it = set.iterator(); while (it.hasNext()) { String str = it.next(); System.out.println(str); } 2.for循环遍历: for (String str : set) { System.out.println(str); }

Java中遍历Map对象的4种方法

在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. [java] view

java 中遍历Map的几种方法

转自: http://blog.csdn.net/wzb56/article/details/7864911 方法分为两类: 一类是基于map的Entry:map.entrySet(); 一类是基于map的key:map.keySet() 而每一类都有两种遍历方式: a.利用迭代器 iterator: b.利用for-each循环: 代码举例如下 package cn.wzb; import java.util.ArrayList; import java.util.HashMap; impor

Java中遍历Map对象

下面列出一些最常用的Java遍历Map对象的方法 1.在for-each中使用entrySet遍历 这是最常用的遍历方式.在键值都需要时使用. Map<String,String> map = new HashMap<String,String>(); for(Map.Entry<String, String> entry : map.entrySet()){ System.out.println(entry.getKey()+" : "+entry

java中遍历map的优良方法之EntrySet

java中的有各种map1,那么效率最高的一种遍历方法如下:  TreeMap<String,long> map = new TreeMap<String,long>();  Entry<String long> peek; //该类型的句柄只能指向map中的一个键值对                           //若将泛型指明,那么下面直接返回对应类型,否者返回Object  Iterator<Entry<String,long>> 

Java中遍历Map对象的方法

方法一: 在for-each循环中使用entries来遍历 这是最常见的遍历方式,在需要获取key和value时使用. Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() +

Java中遍历Map的四种方式

Demo如下 Map<String, String> map = new HashMap<>(); map.put("key1","data1"); map.put("key2","data2"); map.put("key3","data3"); //第一种方式 System.out.println("通过Map.keySet(),遍历key,valu

JAVA中遍历map的值

public static void main(String[] args){  Map<String, String> map = new HashMap<String, String>();  map.put("id1", "wang");  map.put("id2", "sheng");    //方法一  Set<String> set = map.keySet();   for