lambda表达式(也称闭包)是整个java8发行版中最受期待的在java语言层面上的改变,lambda允许把函数作为一个方法的参数(函数作为参数传递方法中),或者把代码看成数据,lanbda表达式用于简化Java中接口的匿名内部类。称为函数式接口的概念,函数式接口就是一个具有一个方法的普通接口,像这样的接口,可以被隐式转换为lambda表达式
函数式接口就是一个具有一个方法的普通接口
语句
(参数1,参数2~~~)->{~}
public class LambdaDome {
public static void main(String[] args) {
//IEat ieat=new IEatImpl();
//ieat.eat();
//IEat ieat1=new IEat() {
//public void eat() {
// System.out.println("eat bnana");
// }
// };
//ieat1.eat();
//lambda表达式(代码简介)
//IEat ieat3=()->{System.out.println("eat apple bnana");};
//IEat ieat3=()->System.out.println("eat apple bnana");
//ieat3.eat();
//带参数时使用
//IEat ieat4=(String thing)->System.out.println("eat "+thing);
//ieat4.eat("apple");
//带参数时使用,参数类型可以省略,代码中有多行代码
IEat ieat4=(thing,name)->{
System.out.println("eat "+thing);
System.out.println("name"+name);
};
ieat4.eat("apple","nhao");
}
}
interface IEat{
public void eat(String thing,String name);
}
class IEatImpl implements IEat{
public void eat(String thing,String name) {
System.out.println("eat"+thing+"name"+name);
}
}
eat apple
name nhao
排序引用
Student[] students= {
new Student("张三",2),
new Student("李四",4),
new Student("张提",9)};
// Arrays.sort(students,new Comparator() {
// @Override
//public int compare(Student o1, Student o2) {
// return o1.getAge()-o2.getAge();
// }
//});
// Comparator c=(o1,o2)->o1.getAge()-o2.getAge();
Arrays.sort(students,(o1,o2)->o1.getAge()-o2.getAge());
System.out.println(Arrays.toString(students));



