public class Test { public static void main(String[] args) { Integer[] arr = {2, 4, 6, 1, 9, 3, 0, 7}; Arrays.sort(arr, new Comparator<Integer>() { @Override public int compare(Integer i1, Integer i2) { return i2.compareTo(i1); } }); System.out.println(Arrays.toString(arr)); } }请使用Lambda表达式,改写以上代码,实现相同的需求。
时间: 2024-02-02 22:04:18 浏览: 69
java笔试面试试题附带答案
可以使用 Lambda 表达式来简化上述代码。Lambda 表达式是一个匿名函数,可以直接传递给方法或赋值给变量。这里可以使用 Lambda 表达式来替代匿名内部类,代码如下:
```
public class Test {
public static void main(String[] args) {
Integer[] arr = {2, 4, 6, 1, 9, 3, 0, 7};
Arrays.sort(arr, (i1, i2) -> i2.compareTo(i1));
System.out.println(Arrays.toString(arr));
}
}
```
Lambda 表达式 `(i1, i2) -> i2.compareTo(i1)` 的意思与匿名内部类中的 `compare` 方法相同。其中的 `->` 符号表示 Lambda 表达式的参数和执行体的分隔符,左侧是参数列表,右侧是执行体。因为只有一行代码,所以不需要写花括号。
阅读全文