今天看啥  ›  专栏  ›  奶盐味小圆饼

Lambda 表达式

奶盐味小圆饼  · 简书  ·  · 2020-04-01 18:06

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

看不懂的代码





原文地址:访问原文地址
快照地址: 访问文章快照