美文网首页
Java8 教程第十二章之Stream Map过滤

Java8 教程第十二章之Stream Map过滤

作者: PrimaryKeyEnoch | 来源:发表于2019-08-13 06:13 被阅读0次

    本套JAVA8教程由于是有英文翻译过来的,如果有翻译不对的地方还请多多包涵。

    本节课先简单的介绍下Java8有哪些新特性,对于Java6/7版本做出哪些更改.那废话不多说,赶紧开始今天的课程吧.

    上一节教程学到list转map, 是不是稍微简单了呢. 那么下面继续对map进行操作吧.一起看下怎么过滤map的值吧? 有的同学已经想到了filter函数咯,那就看下代码吧!

    过滤一个Map

       public static void main(String[] args) {
    
            Map<Integer, String> HOSTING = new HashMap<>();
            HOSTING.put(1, "linode.com");
            HOSTING.put(2, "heroku.com");
            HOSTING.put(3, "digitalocean.com");
            HOSTING.put(4, "aws.amazon.com");
            String result = "";
            for (Map.Entry<Integer, String> entry : HOSTING.entrySet()) {
                if ("aws.amazon.com".equals(entry.getValue())) {
                    result = entry.getValue();
                }
            }
            System.out.println("java 8 之前: " + result);
            //Map -> Stream -> Filter -> String
            result = HOSTING.entrySet().stream()
                    .filter(map -> "aws.amazon.com".equals(map.getValue()))
                    .map(Map.Entry::getValue)
                    .collect(Collectors.joining());
    
            System.out.println("java 8 : " + result);
            result = HOSTING.values().stream()
                    .filter("aws.amazon.com"::equals)
                    .collect(Collectors.joining());
    
            System.out.println("java 8-2 : " + result);
        }
    

    输出

    java 8 之前: aws.amazon.com
    java 8 : aws.amazon.com
    java 8-2 : aws.amazon.com
    

    以上代码顾名思义就是过滤出map的值为aws.amazon.com,写了java8与java8之前的对比,为了更好的理解

    过滤一个Map-2

       public static void main(String[] args) {
    
            Map<Integer, String> HOSTING = new HashMap<>();
            HOSTING.put(1, "linode.com");
            HOSTING.put(2, "heroku.com");
            HOSTING.put(3, "digitalocean.com");
            HOSTING.put(4, "aws.amazon.com");
            Map<Integer, String> collect = HOSTING.entrySet().stream()
                    .filter(map -> map.getKey() == 2)
                    .collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
            System.out.println(collect);
             collect = HOSTING.entrySet().stream()
                    .filter(map -> map.getKey() == 2)
                    .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
            System.out.println(collect);
        }
    

    输出

    {2=heroku.com}
    {2=heroku.com}
    

    以上代码是过滤出key为2的map

    以上就是操作map的常用的方法,是不是学会了

    欢迎小伙伴留言哦

    相关文章

      网友评论

          本文标题:Java8 教程第十二章之Stream Map过滤

          本文链接:https://www.haomeiwen.com/subject/aufmjctx.html