侧边栏壁纸
博主头像
Hello石狐

平凡的日子里,也要习惯记录

  • 累计撰写 18 篇文章
  • 累计创建 4 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Lambda表达式(Java)

石狐
2025-07-08 / 0 评论 / 0 点赞 / 14 阅读 / 0 字

在Java中,lambda表达式是一种简洁的写法,用来表示只有一个抽象方法的接口(即函数式接口)。自从Java 8开始,lambda表达式被引入,极大地简化了代码的编写。

下面是一些使用lambda表达式的示例:

1. 简化接口实现

假设我们有一个函数式接口GreetingService,如下所示:

@FunctionalInterface
public interface GreetingService {
  void greet(String name);
}

使用传统的匿名类实现这个接口:

GreetingService greetingService = new GreetingService() {
  @Override
  public void greet(String name) {
    System.out.println("Hello, " + name);
 }
};

使用Lambda表达式简化上述代码:

GreetingService greetingService = (name) -> System.out.println("Hello, " + name);

简化创建线程写法(简化Runnable和Callable的实现)

使用Lambda表达式创建线程执行任务
new Thread(() -> System.out.println("Thread running")).start();

2. 使用Lambda表达式与函数式接口的常见用法

2.1 与Stream API结合使用

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(name -> System.out.println(name));

2.2 使用Comparator进行排序

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort(Comparator.comparing(name -> name.length()));

3. 作为方法参数

public void executeTask(Runnable task) {
    task.run();
}
 
// 使用Lambda表达式调用
executeTask(() -> System.out.println("Task executed"));

4. Lambda表达式与函数式接口的内置方法引用

Java 8还引入了方法引用,它是一种更简洁的lambda表达式,可以用来直接引用已存在的方法或构造函数。例如:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(System.out::println); // 使用方法引用简化代码

0

评论区