Lambda表达式
它使代码更加简洁、易读,函数式编程增强了代码的表达力。常用于对集合的操作,如遍历、过滤、转换等。
Lambda表达式的形式:
参数, 箭头(->) 以及一个表达式:
(String first, String second) -> first.length() - second.length()
题目示例:对运动员的金牌、银牌、铜牌排名
输入:
第一行输入运动员数量n,
然后输入n个运动员获得的 金牌数 银牌数 铜牌数
输出:
按照排名输出各个运动员
输入输出示例:
(绿色输入,黑色输出)
思维:一般来想,我们通常会先对运动员 依照 铜银金 依次进行三次排名,代码会变得复杂,此时合理运用lambda表达式,显著精简了代码长度。
代码:
public class Lambda{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int arrLen = sc.nextInt();
int[][] arr = new int[arrLen][3];
for(int i=0;i<arrLen;i++){
for(int j=0;j<3;j++){
arr[i][j] = sc.nextInt();
}
}
hand(arr);
}
public static void hand(int[][] arr) {
Arrays.sort(arr,(o1,o2)->{
for(int i=0;i<3;i++) {
if(o1[i]==o2[i]) {
continue;
}else {
return o2[i]-o1[i];
}
}
return 0;
});
for(int[] a : arr) {
for(int i=0;i<a.length;i++) {
//System.out.print(a[i]+" ");
if(i==0) {
System.out.print(a[i]);
}else {
System.out.print(" "+a[i]);
}
}
System.out.println();
}
}
}