Java遍历Map集合的4种方式
王立超 / / 编程技术 / 阅读量

1、entrySet

同时获取键值对的情况下推荐使用这种方式,效率最高

public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("a",1);
    map.put("b",2);
    map.put("c",3);
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
    }
}

2、keySet或values

如果只获取key或value,可以使用这种方式,同时获取则需要二次取值,性能低于第一种方式

public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("a",1);
    map.put("b",2);
    map.put("c",3);
    // 遍历map中的键
    for (String key : map.keySet()) {
        System.out.println("key = " + key);
    }
    // 遍历map中的值
    for (Integer value : map.values()) {
        System.out.println("value = " + value);
    }
}

3、Iterator

使用迭代器遍历

public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("a",1);
    map.put("b",2);
    map.put("c",3);
    Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, Integer> entry = it.next();
            System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
        }
}

4、Java8 forEach

Java8中支持Lambda表达式,语法看起来很简洁,可以同时获取到key和value,但数据量大的话更推荐第一种方式

public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("a",1);
    map.put("b",2);
    map.put("c",3);
    map.forEach((key, value) -> System.out.println("key = " + key + ", value = " + value));
}
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章