函数式编程

简介: 函数式编程

Java8开始,支持函数式编程,什么是函数式编程?
函数式编程(Functional Programming, FP)是一种编程范式,它强调使用函数来处理数据的计算。这个名字来源于这种范式对函数的重视,其中“函数”指的是数学意义上的函数,即一种关系,在这种关系中,每个输入值都对应一个唯一的输出值,而且同样的输入总是会产生同样的输出。即函数的确定性。意思就是函数的每个输入值(自变量)映射到唯一的输出值(因变量)。类似于接口的幂等性,不过幂等性指的是同样的数据经过一段操作过程,执行的结果不会发生改变,强调的是过程,而函数的确定性指的是一个数学的概念。

  一、什么是Lambda表达式?
  Lambda表达式是一种简洁、可传递的匿名函数,它可以作为参数传递给方法或存储在变量中。
  目的是解决面向对象开发中繁琐的代码处理。用简洁、可传递的匿名函数语法而简化代码开发。

  Lambda表达式的基本语法如下:
  接口名 变量名 = Lambda表达式
  无参数的: ()->{}
  有参数的:(parameters) -> expression 或 (parameters)->{statements; }
  parameters:Lambda表达式的参数列表,可以省略类型声明,如果只有一个参数且类型可以推导,则圆括号也可以省略。
  expression:如果Lambda表达式只包含一个表达式,则可以直接返回该表达式的值。
  statements:如果Lambda表达式包含多个语句,则需要用花括号括起来,并显式包含 return 语句(如果需要返回值)。
  Lambda表达式的几种示例:
  示例 1:无参数的 Lambda表达式
  Runnable run = () -> System.out.println("Hello, world!");
  new Thread(run).start();
  示例 2:带一个参数的 Lambda表达式
  ActionListener listener = event -> System.out.println("Button clicked!");
  button.addActionListener(listener);
  示例 3:带多个参数的 Lambda表达式
  BinaryOperator<Integer> add = (a, b) -> a + b;
  System.out.println(add.apply(1, 2));  // 输出 3
  示例 4:带类型声明的 Lambda表达式
  BinaryOperator<Integer> multiply = (Integer a, Integer b) -> a * b;
  System.out.println(multiply.apply(2, 3));  // 输出 6
  示例 5:带多个语句的 Lambda表达式
  BinaryOperator<Integer> subtract = (a, b) -> {
      int result = a - b;
      return result;
  };
  System.out.println(subtract.apply(5, 3));  // 输出 2
  Lambda表达式可以用于任何需要函数对象的地方,例如,在实现接口的方法时,或者在创建线程时。
  // 使用 Lambda表达式实现 Runnable
  Runnable run = () -> System.out.println("Hello, world!");
  new Thread(run).start();
目录
相关文章
|
移动开发 前端开发 API
深入理解前端路由:构建现代 Web 应用的基石(上)
深入理解前端路由:构建现代 Web 应用的基石(上)
深入理解前端路由:构建现代 Web 应用的基石(上)
|
安全 Java 索引
Java——反射&枚举
本文介绍了Java反射机制及其应用,包括获取Class对象、构造方法、成员变量和成员方法。反射允许在运行时动态操作类和对象,例如创建对象、调用方法和访问字段。文章详细解释了不同方法的使用方式及其注意事项,并展示了如何通过反射获取类的各种信息。此外,还介绍了枚举类型的特点和使用方法,包括枚举的构造方法及其在反射中的特殊处理。
254 9
Java——反射&枚举
计算机组成原理(6)-----指令执行过程
计算机组成原理(6)-----指令执行过程
1626 0
简单易操作 VsCoe离线安装插件【步骤+图片+插件】
这篇文章介绍了在Visual Studio Code (VSCode) 中进行离线安装插件的详细步骤,包括如何下载插件、以SVN插件为例的离线安装过程、通过命令行安装以及一个更加简单的离线安装方式,还提供了操作界面的截图帮助理解。
简单易操作 VsCoe离线安装插件【步骤+图片+插件】
|
虚拟化 容器
虚拟机和容器的区别
虚拟机和容器的区别
592 0
|
监控 安全 数据安全/隐私保护
关于云锁
背景 主机,储存数据和承载关键业务系统的主体,是企业IT系统的重要资产。主机的安全一直被认为是整个信息安全领域的最后一道防线。主机的漏洞和弱点一直是攻击者和信息资产所有者激烈争夺的阵地。主机安全规划与加固是专业安全顾问通过对承载重要信息系统的主机进行安全评估,根据客户特定的安全要求,制定主机安全规划与加固方案,采取对系统漏洞进行补丁修补,并优化和加强账号口令、日志、网络性能、文件系统、权限控制、服务进程等等。
|
XML JSON 缓存
Java实现天眼查API根据企业纳税识别号查询企业详情数据方法
Java实现天眼查API根据企业纳税识别号查询企业详情数据方法
|
敏捷开发 前端开发 持续交付
前端团队合作和项目管理
前端团队合作和项目管理
764 0
阿里云域名购买流程图(新版教程)
阿里云域名注册购买,先注册阿里云账号,账号必须通过实名认证;然后创建信息模版,个人或企业信息模板必须通过实名认证;然后想好域名名称和域名后缀;最后在阿里云域名注册官网进行新域名的注册
7823 0
阿里云域名购买流程图(新版教程)