介绍集合经常使用下面

遍历map的五种方法介绍

编程开发 2020-10-14 05:57:18 41

导读

日常开发中Map集合遍历是经常使用的,下面介绍几种遍历方法的差异。1、Iterator+entrySet写法【推荐JDK8以下】,Map.Entry是Map接口的内部接口,获取迭代器,然后依次取出每个迭代器里面的Map.Entry Iterator<Map.Entry&l……

日常开发中Map集合遍历是经常使用的,下面介绍几种遍历方法的差异。

1、Iterator+entrySet写法【推荐JDK8以下】,Map.Entry是Map接口的内部接口,获取迭代器,然后依次取出每个迭代器里面的Map.Entry

        Iterator<Map.Entry<Integer,String>> iterator=map.entrySet().iterator();
        while(iterator.hasNext()){
            Map.Entry<Integer,String> entry=iterator1.next();
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }

2、Iterator+keyset写法【不推荐,只能获取key,然后通过key获取对应的value,重复计算】

        Iterator<Integer> iterator=map.keySet().iterator();
        while (iterator.hasNext()){
            Integer key=iterator.next();
            System.out.println(key);
            System.out.println(map.get(key));
        }

3、foreach遍历方式【JDK8以下推荐写法】

        for(Map.Entry<Integer,String> entry:map.entrySet()){
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        };

4、lambda表达式遍历【JDK8推荐写法,简捷】

        map.forEach((key,value)->{
            System.out.println(key);
            System.out.println(value);
        });

5、stream流遍历Map【JDK8不推荐写法,重复计算】

        map.entrySet().stream().forEach((Map.Entry<Integer, String> entry) -> {
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        });

如果Map集合存在一些中间处理,可以过滤操作,使用流式遍历也很方便。


1253067 TFnetwork_cn