lambda表达式是用来简化匿名内部类的书写的
注意:接口只能有一个抽象方法, 因为如果有多个抽象方法系统就不能分辨我们的lambda表达式重写的是那个方法了.
Lambda表达式还可以继续省略
String[] arr = {"a", "bsdf", "qae", "asqweq"};
int[] arrint = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arrint[i] = arr[i].length();
}
int[] arrint2 = Arrays.copyOf(arrint, arr.length);
Arrays.sort(arrint2);
for (int i = 0; i < arrint2.length; i++) {
for (int j = i; j < arrint.length; j++) {
if (arrint2[i] == arrint[j]){
String temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
break;
}
}
}
System.out.println(Arrays.toString(arr));
// Lambda完整表达式
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length() - o2.length();
}
});
// Lambda简易表达式
Arrays.sort(arr, (o1, o2) -> o1.length() - o2.length());