Lambda表达式
Lambda表达式是整个java8发行版中最受期待的在java语言层面上的改变,Lambda允许把函数作为一个方法的参数,或者把代码看成数据。Lambda表达式用于简化java中接口式的匿名内部类,被称为函数式接口的概念。函数式接口就是一个具有一个方法的普通接口,像这样的接口,可以被隐式转换为Lambda表达式
基本使用:
创建一个接口(无参数时):
public interface IEat { void eat(); }
lambda演示:
IEat iEat = ()-> System.out.println("eat shi"); iEat.eat();//eat shi
接口有参数时,例如:
public interface IEat{ void eat(String name,String value); }
lambda:
IEat iEat = (a,b)-> System.out.println("我吃"+a+b); iEat.eat("baba","fenfen");//我吃babafenfen
接口有返回值时:
public interface IEat { int eat(int a,int b); }
lambda:
IEat ieat = Integer::sum; System.out.println(ieat.eat(3,4));//7
#:案例,对一个对象根据年龄进行排序,用lambda的方式(前面我们是自己定义的比较器,这次我们可以使用lambda表达式来实现)
实体类:
class Cat { private String name; private int age; public Cat(String name, int age) { this.name = name; this.age = age; } // get,set,toString }
代码测试:
Cat[] cats = {new Cat("lili", 12), new Cat("zhan", 1), new Cat("qiqi", 3)}; Arrays.sort(cats,Comparator.comparingInt(Cat::getAge)); System.out.println(Arrays.toString(cats));