欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 集合Map循环遍历的几种方法

程序员文章站 2024-02-17 12:25:34
...

在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。

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<>(4);
        map.put("1", "a");
        map.put("2", "b");
        map.put("3", "c");
        map.put("4", "d");


         /**
          * 方法一:在for循环中使用entries实现Map的遍历:
         * * 最常见也是大多数情况下用的最多的,一般在键值对都需要使用
         *  */
        for (Map.Entry<String,String> entry:map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+":"+value);
        }

        /**
         * 方法二:在for循环中遍历key或者values,
         * 一般适用于只需要map中的key或者value时使用,在性能上比使用entrySet较好;
         */
        for (String key:map.keySet()) {
            System.out.print(key);
        }

        for (String value:map.values()) {
            System.out.println(value);
        }


        /**
         * 方法三:通过Iterator遍历;
         */
        Iterator<Map.Entry<String,String>> entries = map.entrySet().iterator();
        while (entries.hasNext()){
            Map.Entry<String, String> entry = entries.next();
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+":"+value);
        }

        /**
         * 方法四:通过键找值遍历,这种方式的效率比较低,因为本身从键取值是耗时的操作;
         */
        for(String key : map.keySet()){
            String value = map.get(key);
            System.out.println(key+":"+value);
        }

        /**
         * 方法五 map.forEach JDK1.8 新特性
         */
        map.forEach((key,value)->{
            System.out.println("key"+key+",value"+value);
        });
    }
}

 

 

相关标签: java基础 map