当前位置:首页 > 科技  > 软件

Java Lambda 表达式各种用法,你都会了吗

来源: 责编: 时间:2023-12-25 09:35:35 319观看
导读Lambda表达式是 Java 8 中引入的最有影响力的功能之一。它们通过允许简洁而优雅地创建匿名函数来实现 Java 中的函数式编程。在这篇博文中,我们将探讨编写 lambda 表达式的各种形式。概述lambda 表达式是可以具有参数

Lambda表达式是 Java 8 中引入的最有影响力的功能之一。它们通过允许简洁而优雅地创建匿名函数来实现 Java 中的函数式编程。在这篇博文中,我们将探讨编写 lambda 表达式的各种形式。fmy28资讯网——每日最新资讯28at.com

fmy28资讯网——每日最新资讯28at.com

概述

lambda 表达式是可以具有参数和主体的匿名函数。正文可以包含零行、一行或多行代码,Lambda 表达式可以分配给类型为函数式接口(具有单个抽象方法的接口)的变量。fmy28资讯网——每日最新资讯28at.com

Lambda 表达式的各种编写形式

Java 中的Lambda 表达式 可以以各种形式编写,具体取决于它们所实现的函数式接口的抽象方法的签名。以下是编写 lambda 表达式的一些不同方法:fmy28资讯网——每日最新资讯28at.com

1.无参数,无返回值

如果抽象方法不带参数且不返回值,则  可以使用空括号和主体编写lambda 表达式:fmy28资讯网——每日最新资讯28at.com

() -> System.out.println("Hello, World!");

2. 单参数,无类型声明

如果抽象方法采用单个参数,则可以省略参数周围的括号,并且可以推断类型:fmy28资讯网——每日最新资讯28at.com

s -> System.out.println(s);
  1. 单参数,带类型声明:
(String s) -> System.out.println(s);

4. 多个参数:

如果抽象方法采用多个参数,则必须在参数两边加上括号。类型可以推断或显式声明:fmy28资讯网——每日最新资讯28at.com

(a, b) -> a + b;(int a, int b) -> a + b;

5、有参数并且有返回值声明

如果 lambda 的主体由单个返回值的表达式组成,则可以直接编写:fmy28资讯网——每日最新资讯28at.com

(int a, int b) -> a + b;

如果主体由多个语句组成,则必须包含大括号并使用 return 语句:fmy28资讯网——每日最新资讯28at.com

(int a, int b) -> {    int sum = a + b;    return sum;};

6.无参数,返回值:

如果抽象方法不带参数但有返回值,可以这样写:fmy28资讯网——每日最新资讯28at.com

() -> 42;

示例:各种形式的 Lambda 表达式

这是一个简单的 Java 程序,演示了各种形式的 Lambda 表达式:fmy28资讯网——每日最新资讯28at.com

package com.example.spring.demo;public class LambdaExample {    public static void main(String[] args) {        //无参数,无返回值:        Runnable noParametersNoReturnValue = () -> System.out.println("Hello, World!");        noParametersNoReturnValue.run(); // 输出: Hello, World!        //单参数,无类型声明:        java.util.function.Consumer<String> singleParameterNoType = s -> System.out.println(s);        singleParameterNoType.accept("Single Parameter, No Type!"); // 输出: Single Parameter, No Type!        //单参数,带类型声明:        java.util.function.Consumer<String> singleParameterWithType = (String s) -> System.out.println(s);        singleParameterWithType.accept("Single Parameter with Type!"); // 输出: Single Parameter with Type!        //多个参数,无类型声明        java.util.function.BiFunction<Integer, Integer, Integer> multipleParametersTypeInferred = (a, b) -> a + b;        System.out.println(multipleParametersTypeInferred.apply(5, 10)); // 输出: 15        //多个参数,有类型声明        java.util.function.BiFunction<Integer, Integer, Integer> multipleParametersWithType = (Integer a, Integer b) -> a + b;        System.out.println(multipleParametersWithType.apply(5, 10)); // 输出: 15        // 多个参数,并且多行实现        java.util.function.BiFunction<Integer, Integer, Integer> multipleStatements = (a, b) -> {            int sum = a + b;            return sum;        };        System.out.println(multipleStatements.apply(5, 10)); // 输出: 15        // 无参数,但是有返回值        java.util.function.Supplier<Integer> noParametersReturnValue = () -> 42;        System.out.println(noParametersReturnValue.get()); // 输出: 42    }}

输出:fmy28资讯网——每日最新资讯28at.com

Hello, World!Single Parameter, No Type!Single Parameter with Type!15151542

结论

lambda表达式的形式,具体取决于参数的数量和类型、是否包含显式类型声明以及主体是由单个表达式还是多个语句组成,Java 中Lambda 表达式的灵活性,使我们能够编写简洁且富有表现力的代码。fmy28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-53347-0.htmlJava Lambda 表达式各种用法,你都会了吗

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 几行代码教你自动操作 PPT

下一篇: C++函数模板详解,轻松实现通用函数

标签:
  • 热门焦点
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 为什么你不应该使用Div作为可点击元素

    按钮是为任何网络应用程序提供交互性的最常见方式。但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。但通过这样做,我们错过了许多内置浏览器的功能。
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。&ldquo;提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 疑似小米14外观设计图曝光:后置相机模组变化不大

    下半年的大幕已经开启,而谁将成为下半年手机圈的主角就成为了大家关注的焦点,其中被传有望拿下新一代骁龙8 Gen3旗舰芯片的小米14系列更是备受大家瞩
  • 消息称小米汽车开始筛选交付中心:需至少120个车位

    IT之家 7 月 7 日消息,日前,有微博简介为“汽车行业从业者、长三角一体化拥护者”的微博用户 @长三角行健者 发文表示,据经销商集团反馈,小米汽车目前
  • 华为Mate 60保护壳曝光:硕大后置相机模组 凸起程度有惊喜

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • DRAM存储器10月价格下跌,NAND闪存本月价格与上月持平

    10月30日,据韩国媒体消息,自今年年初以来一直在上涨的 DRAM 存储器的交易价格仅在本月就下跌了近 10%,此次是全年首次降价,而NAND 闪存本月价格与上月持平。市
Top