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
看不懂的代码
网友评论