温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java Lambda表达式基础教程

发布时间:2026-01-01 01:25:36 来源:亿速云 阅读:105 作者:小樊 栏目:编程语言

Java Lambda表达式是Java 8引入的一种新的编程特性,它允许你以简洁的方式表示匿名函数。Lambda表达式主要用于简化对接口中单个抽象方法的实现,这些接口被称为函数式接口。Lambda表达式可以使代码更加简洁、易读,并有助于提高开发效率。

基本语法

Lambda表达式的基本语法如下:

(parameters) -> expression

或者

(parameters) -> { statements; }
  • parameters:表示参数列表,可以有多个参数,用逗号分隔。如果只有一个参数,可以省略括号。
  • ->:箭头操作符,将参数与Lambda体连接起来。
  • expression:表示单个表达式,该表达式的结果将作为Lambda表达式的返回值。如果有多个语句,需要使用大括号{}包裹,并显式使用return语句返回结果。

示例

假设我们有一个函数式接口Calculator:

@FunctionalInterface
public interface Calculator {
    int operate(int a, int b);
}

我们可以使用Lambda表达式来实现这个接口:

public class LambdaDemo {
    public static void main(String[] args) {
        // 使用Lambda表达式实现Calculator接口
        Calculator add = (a, b) -> a + b;
        Calculator subtract = (a, b) -> a - b;

        System.out.println("Add: " + add.operate(10, 5)); // 输出:Add: 15
        System.out.println("Subtract: " + subtract.operate(10, 5)); // 输出:Subtract: 5
    }
}

常用函数式接口

Java 8提供了一些常用的函数式接口,它们位于java.util.function包中:

  • Predicate<T>:接受一个参数,返回一个布尔值。常用方法有and(), or(), negate()等。
  • Consumer<T>:接受一个参数,没有返回值。常用方法有andThen(), compose()等。
  • Function<T, R>:接受一个参数,返回一个指定类型的值。常用方法有andThen(), compose()等。
  • Supplier<T>:没有参数,返回一个指定类型的值。常用方法有andThen()等。

方法引用

方法引用是Lambda表达式的一种简化形式,它允许你直接引用已有的方法或构造函数。方法引用的基本语法如下:

ClassName::methodName

例如,我们可以使用方法引用来替换上面的Lambda表达式:

public class LambdaDemo {
    public static void main(String[] args) {
        // 使用方法引用实现Calculator接口
        Calculator add = LambdaDemo::add;
        Calculator subtract = LambdaDemo::subtract;

        System.out.println("Add: " + add.operate(10, 5)); // 输出:Add: 15
        System.out.println("Subtract: " + subtract.operate(10, 5)); // 输出:Subtract: 5
    }

    public static int add(int a, int b) {
        return a + b;
    }

    public static int subtract(int a, int b) {
        return a - b;
    }
}

总结

Java Lambda表达式是一种简洁、易读的编程特性,它可以简化对函数式接口的实现。通过使用Lambda表达式和方法引用,你可以编写出更简洁、高效的代码。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手