标签:16px arraylist fun 编译 就是 使用 类型 运行 code
作用:让代码简化,流水线式的逻辑。可以简化 匿名内部类的 写法。
首先介绍函数式接口,这个接口只有一个方法。
1.1 简化匿名内部类
@FunctionalInterface
public interface Swimmable {
void swim();
}
public class LambdaExpressDemo {
public void goSwimming(Swimmable swimmable) {
swimmable.swim();
}
}
LambdaExpressDemo lambdaExpressDemo = new LambdaExpressDemo();
// 这是传统的 匿名内部类的写法
lambdaExpressDemo.goSwimming(new Swimmable() {
@Override
public void swim() {
System.out.println("这是传统的 匿名内部类的写法");
}
});
lambdaExpressDemo.goSwimming(() -> System.out.println("lambda表达式的写法"));
1.2 简化线程实现的写法, 比如 new runable(){} 用lambda写,就是 ()-> {// TODO 具体的业务} 。
1.3 集合的常用操作:排序。除了使用 lambda表达式来代替 new Comparator(){},还有更简单的写法。
给定一个 Person类。
List<Person> personArrayList = new ArrayList<>();
personArrayList.add(new Person("Tom", 22, 166));
personArrayList.add(new Person("Jerry", 76, 176));
personArrayList.add(new Person("张三", 55, 188));
personArrayList.add(new Person("李四", 76, 199));
personArrayList.sort(Comparator.comparingInt(Person::getAge).thenComparing(Person::getName));
personArrayList.forEach(System.out::println);
运行结果是
Person{ Tom, 22, 166}
Person{ 张三, 55, 188}
Person{ Jerry, 76, 176}
Person{ 李四, 76, 199}
1.4 lambda表达式 和 匿名内部类的 比较
标签:16px arraylist fun 编译 就是 使用 类型 运行 code
原文地址:https://www.cnblogs.com/wuyicode/p/12456962.html