JDK8新特性之Lambda表达式

简介: 什么是Lambda表达式Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。

什么是Lambda表达式

Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。

Lambda语法

一行执行语句的写法:

(parameters) -> expression

如果有多行执行语句,可以加上{}

(parameters) -> { statements; }

如:

public int add(int x, int y) {
    return x + y;
}

转换成Lambda表达式有以下几种写法:

// 指定参数类型及return
(int x, int y) -> { return x + y; }
// 指定参数类型,不指定return
(int x, int y) -> x + y;
// 不指定参数类型和return,编译器会自动推断
(x, y) -> x + y; 

Lambda用途

1、只有一个抽象方法的函数式接口

Lambda表达式的目标类型是函数式接口,什么是函数式接口之后会讲。


下面拿创建线程来举例,用lambda表达式可以有以下几种写法。

public static void main(String[] args) {
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("t1");
        }
    }).start();
    Runnable runnable = () -> System.out.println("t2");
    new Thread(runnable).start();
    new Thread(() -> System.out.println("t3")).start();
    new Thread(() -> run("t4")).start();
    new Thread(() -> {
        String str = "t5";
        System.out.println(str);
    }).start();
}
private static void run(String str) {
    System.out.println(str);
}

最后输出:

t1
t2
t3
t4
t5

2、集合批量操作

下面打印list集合的两种写法是等价的。

List<String> list = Arrays.asList("a","b","c");
for(String str : list){
    System.out.println(str);
}
list.forEach((e) -> System.out.println(e));

3、流操作

下面是流查询list集合中等于"a"的数量。

list.stream().filter((e) -> "a".equals(e)).count();• 1

更多的Lambda表达式及关于流更多内容之后陆续会讲到。

相关文章
|
7月前
|
Java 测试技术 调度
JDK21有没有什么稳定、简单又强势的特性?
这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。
JDK21有没有什么稳定、简单又强势的特性?
|
10月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
149 7
|
12月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
102 1
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
126 3
|
存储 安全 Java
JDK1.8 新的特性
JDK1.8 新的特性
137 0
|
编解码 安全 Java
jdk8新特性-接口和日期处理
jdk8新特性-接口和日期处理
|
3月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装openjdk-6/7/8-jdk的步骤
在整个安装过程中,你可能需要管理员权限,因此你可能要使用 `sudo` 来获取必要的权限。记得做完每一个步骤后,都要检查输出,以确保没有发生错误,并且每项操作都成功完成。如果在安装过程中遇到问题,查看 `/var/log/` 下的日志文件对于问题的解决可能是有帮助的。
193 21
|
3月前
|
IDE Ubuntu Java
在Ubuntu18.04安装兼容JDK 8的Eclipse集成开发环境的指南。
完成以上步骤后,您将在Ubuntu 18.04系统上成功安装并配置了Eclipse IDE,它将与JDK 8兼容,可以开始进行Java开发工作。如果遇到任何问题,请确保每一步骤都正确执行,并检查是否所有路径都与您的具体情况相匹配。
134 11
|
2月前
|
Ubuntu Java Android开发
在Ubuntu 18.04上安装与JDK 8兼容的Eclipse版本的步骤。
安装过程结束后,您就可以开始使用Eclipse来开发您的Java项目了,并且确保它与JDK 8兼容无误。这个过程涉及的是一个基本的安装流程,针对使用Java 8的用户,Eclipse的其他配置和插件安装根据个人开发环境和需求来定制。
196 0
|
5月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
328 41