面试题答案
一键面试import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(3);
list.add(2);
// 使用Lambda表达式从大到小排序
Collections.sort(list, (a, b) -> b - a);
System.out.println(list);
}
}
在这里,Lambda表达式 (a, b) -> b - a
替代了传统的 Comparator
接口的匿名内部类实现。传统写法如下:
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer a, Integer b) {
return b - a;
}
});
Lambda表达式提供了一种更为简洁的方式来表示这种函数式接口的实现,省略了接口实现类定义、方法声明等冗余代码,让代码更加紧凑易读。