MST

星途 面试题库

面试题:Java中Lambda表达式基础使用

请使用Java的Lambda表达式对一个整数列表进行排序,从大到小排列。并解释Lambda表达式在这里替代了传统的什么代码结构。
15.9万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
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表达式提供了一种更为简洁的方式来表示这种函数式接口的实现,省略了接口实现类定义、方法声明等冗余代码,让代码更加紧凑易读。