Java中的 Lambda 表达式

  • Lambda 表达式允许把函数作为一个方法的参数传递,使用 Lambda 表达式可以使得代码变得更加简洁紧凑。

语法格式

(parameters) -> expression

(parameters) ->{ statements; }
  • parameters表示一个或多个参数,如果只有一个参数,可以省略括号;但是如果没有参数,需要加空括号。
  • expression{ statements; } 是Lambda 表达式的主体,即执行的函数。
  • 代码示例如下,HashMap中的merge()方法可以参考Java HashMap中的merge()方法。下面的代码通过 Lambda 表达式向merge()方法中传入了一个参数为ab,返回值为a+b的函数方法。
public class Test {
    public static void main(String[] args) {
        HashMap<String, Integer> prices = new HashMap<>();

        prices.put("Shoes", 200);
        prices.put("Bag", 100);
        System.out.println(prices);
        System.out.println();

        int returnValue = prices.merge("Shirts", 100, (oldValue,newValue)->oldValue+newValue);
        System.out.println(returnValue);
        System.out.println(prices);
        System.out.println();

        int bag = prices.merge("Bag", 50, (a, b) -> a + b);
        System.out.println(bag);
        System.out.println(prices);
    }
}

1

重要特征

简洁性

Lambda 表达式提供了一种更为简洁的语法,尤其适用于函数式接口。相比于传统的匿名内部类,Lambda 表达式使得代码更为紧凑,减少了样板代码的编写。

public class Test {
    public static void main(String[] args) {
        // 传统的匿名内部类
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("Hello World!");
            }
        }).start();

        // 使用 Lambda 表达式
        new Thread(()-> System.out.println("Hello World!")).start();
    }
}

支持函数式编程

Lambda 表达式是函数式编程的一种体现,它允许将函数当作参数传递给方法,或者将函数作为返回值,这种支持使得 Java 在函数式编程方面更为灵活,能够更好地处理集合操作、并行计算等任务。

public class Test {
    public static void main(String[] args) {
        // 使用 Lambda 表达式作为参数传递给方法
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(name -> System.out.println(name));
    }
}

方法引用

Lambda 表达式可以通过方法引用进一步简化,方法引用允许你直接引用现有类或对象的方法,而不用编写冗余的代码。

public class Test {
    public static void main(String[] args) {
        // 使用方法引用
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(System.out::println);
    }
}
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值