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

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

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

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

过滤一个Map

   public static void main(String[] args) {

        Map 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 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 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 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过滤)