Lambda表达式
有且只有一个未实现的方法叫做Lambda表达式,可以实现函数式编程
// 这个注解是用来检查你写的函数是否是函数式接口
@FunctionalInterface
interface Myinterface {
int sum(int a, int b);
default String priteTitle(String name, int age, String sex) {
return name + " " + age + " " + sex;
}
default String price(String name, int price){
return name + " 价值" + price;
}
}
public class DemoApplication {
public static void main(String[] args) {
// 原来的写法需要写实现类
// Myinterface myinterface = new MyInterfaceImpl();
// System.out.println(myinterface.sum(1, 2));
// lambda 表达式
Myinterface superinterface = ( i, j) -> i*i + j*j;
System.out.println(superinterface.sum(3, 4));
System.out.printf( superinterface.priteTitle("张三", 18, "男"));
System.out.println(superinterface.price("张三", 100000));
}
}
lambda的使用
public static void main(String[] args) {
//两种声明变量的方法,声明了一个数组
// List<String> numbers = new ArrayList<String>();
var list = new ArrayList<String>();
list.add("Acf");
list.add("张三");
list.add("阿达");
list.add("zasdf");
//正序排序 类:: 方法引用 使用String类中的compareTo方法,忽略lambda
list.sort(String::compareTo);
System.out.println(list);
//倒序
list.sort((o1, o2) -> o2.compareTo(o1));
System.out.println(list);
new Thread(() -> System.out.println("我是线程")).start();
}