美文网首页
Lambda 表达式

Lambda 表达式

作者: 奶盐味小圆饼 | 来源:发表于2020-04-01 18:06 被阅读0次

    Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。

    Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

    使用 Lambda 表达式可以使代码变的更加简洁紧凑。

    public static class Person {

            private StringfirstName;

            private StringLastName;

            private int age;

    }

    public static void main(String[] args) {

            List people = Arrays.asList(

                new Person("Yixing", "Zhang", 25),

                new Person("Yanggui", "Li", 30),

                new Person("Chao", "Ma", 28)

            );

        checkAndExecute(people, p -> p.getLastName().startsWith("Z"),

                                                    P -> System.out.println(P.getFirstName()));

        people.stream().filter(p -> p.getLastName().startsWith("Z"))

                                        .forEach(p -> System.out.println(p.getFirstName()));

        people.stream().filter(p -> p.getLastName().startsWith("Z"))

                                        .forEach(System.out::println);

        /**

        * 判空操作

        */

        Optional personOpt = Optional.ofNullable(Person);

          personOpt.ifPresent(System.out::println);

        //return personOpt.orElse();

    /* return personOpt.map(p->p.getLastName())

                                  .map(name->name.toUpperCase())

                                  .orElse(null);*/

    }

    public static void checkAndExecute(List people, Predicate predicate, Consumer consumer) {

            people.forEach(p -> { if (predicate.test(p))

                                                 consumer.accept(p);

                                         });

       }

    今天为了学习Lambda表达式,我在知乎上看到一个回答特别的详细,对于初学者肯定是有帮助的https://www.zhihu.com/question/20125256/answer/324121308

    看不懂的代码

    相关文章

      网友评论

          本文标题:Lambda 表达式

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