Lambda表达式
有且只有一个未实现的方法叫做Lambda表达式,可以实现函数式编程
// 这个注解是用来检查你写的函数是否是函数式接口
@FunctionalInterfaceinterface 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方法,忽略lambdalist.sort(String::compareTo);System.out.println(list);//倒序list.sort((o1, o2) -> o2.compareTo(o1));System.out.println(list);new Thread(() -> System.out.println("我是线程")).start();}