java 1.8 加入了lambda的语法,使用lambda语法糖可以让我们的代码更简洁优雅,写起来更爽。
下面看个例子感受一下 :
这个例子中实现student集合的排序和循环输出
public class Lambda {
@Getter
@Setter
@AllArgsConstructor
static class Student{
String name;
Integer age;
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public static void main(String[] args) {
List list = Arrays.asList(
new Student("a",10)
,new Student("b",30)
,new Student("c",15)
,new Student("d",20));
//排序
list.sort((x,y)->x.getAge()-y.getAge());
//循环输出
list.forEach(System.out::println);
}
上面的代码实现了student对象集合的排序和循环输出。
是不是相比普通的写法简洁了许多。
lambda代替了什么
我们知道lambda是一种语法糖,那么我们简写了什么呢?
list.sort((x,y)->x.getAge()-y.getAge());//排序
比如上面这行代码,sort的参数是一个Comparator类型的对象
default void sort(Comparator super E> c)
Comparator是一个接口,其中只有一个方法需要被实现,就是compare方法。所以实际上我们是写了一个内部类
int compare(T o1, T o2);
内部类
那么如果是没有lambda之前