Lambda表达式。
Lambda表达式是JDK8的一个新特性,Lambda可以取代大部分的匿名内部类,写出更优雅的Java代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。JDK也提供了大量的内置函数式接口供我们使用,使得Lambda表达式的运用更加方便、高效。
Lambda 表达式主要用来定义行内执行的方法类型接口。
使用 Lambda 表达式可以使代码变的更加简洁紧凑。
使用案例:
public class Lambda1 {
/**
*
* 使用前提:
* 1. 必须是接口。
* 2. 接口中只能有一个抽象方法。
* 使用格式:
* (形参列表)->(方法体)
* ():代表接口中唯一的抽象方法,有参数则传递,没有留空。
* ->: 将()里的参数传递给{}
* {}:代表重写接口中的抽象方法。
*
*/
public static void main(String[] args) {
//匿名内部类正常使用
userInter(new Inter() {
@Override
public void show(String str) {
System.out.println(str);
}
});
//使用Lambda表达式
userInter((String str)->{ System.out.println(str); });
//在TreeSet使用
//如果主体包含了一个语句,就不需要使用大括号。
//不需要声明参数类型,编译器可以统一识别参数值。
//如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定表达式返回了一个数值。
TreeSet<Integer> ts = new TreeSet<>((o1, o2) -> o2 - o1);
ts.add(1);
ts.add(3);
ts.add(2);
ts.add(4);
System.out.println();
}
//使用Inter方法
public static void userInter(Inter i){
i.show("hello");
}
}
//定义抽象方法
interface Inter{
public abstract void show(String str);
}