下面列出一些最常用的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.getValue());
}


2、在for-each循环中遍历keys或values

如果只需要map中的键或者值,可以通过keySet或values来实现遍历,而不是用entrySet。

Map<String,String> map = new HashMap<String,String>();

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


3、使用Iterator遍历

Map<String,String> map = new HashMap<String,String>();

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

使用此方法在遍历时调用iterator.remove()可以删除entries,其他方法则不能,可能会产生意想不到的结果。
参考:链接

4、通过key遍历value

Map<String,String> map = new HashMap<String,String>();

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


例:

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

public class T {

    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("beijing", "kaoya");
        map.put("henan", "hulatang");
        map.put("tianjin", "mahua");

        System.out.println("1、在for-each中使用entrySet遍历");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " : " + entry.getValue());
        }

        System.out.println("2、在for-each循环中遍历keys或values");
        for (String key : map.keySet()) {
            System.out.println("key: " + key);
        }
        for (String value : map.values()) {
            System.out.println("value: " + value);
        }

        System.out.println("3、使用Iterator遍历");
        Iterator<Map.Entry<String, String>> ite = map.entrySet().iterator();
        while (ite.hasNext()) {
            Map.Entry<String, String> m = ite.next();
            System.out.println(m.getKey() + " : " + m.getValue());
        }

        System.out.println("4、通过key遍历value");
        for (String key : map.keySet()) {
            String value = map.get(key);
            System.out.println(key + " : " + value);
        }
    }

}


作者:itmyhome


本文转载:CSDN博客