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();}}
}