• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

JDK8新特性之Lambda表达式

技术杂谈 勤劳的小蚂蚁 3个月前 (01-20) 77次浏览 已收录 0个评论 扫描二维码

什么是Lambda表达式

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

Lambda语法

一行执行语句的写法:
  1. (parameters)-> expression
如果有多行执行语句,可以加上 {}
  1. (parameters)->{ statements;}
如:
  1. publicint add(int x,int y){
  2.    return x + y;
  3. }
转换成Lambda表达式有以下几种写法:
  1. // 指定参数类型及return
  2. (int x,int y)->{return x + y;}
  3. // 指定参数类型,不指定return
  4. (int x,int y)-> x + y;
  5. // 不指定参数类型和return,编译器会自动推断
  6. (x, y)-> x + y;

Lambda用途

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

Lambda表达式的目标类型是函数式接口,什么是函数式接口之后会讲。
下面拿创建线程来举例,用lambda表达式可以有以下几种写法。
  1. publicstaticvoid main(String[] args){
  2.    newThread(newRunnable(){
  3.        @Override
  4.        publicvoid run(){
  5.            System.out.println("t1");
  6.        }
  7.    }).start();
  8.    Runnable runnable =()->System.out.println("t2");
  9.    newThread(runnable).start();
  10.    newThread(()->System.out.println("t3")).start();
  11.    newThread(()-> run("t4")).start();
  12.    newThread(()->{
  13.        String str ="t5";
  14.        System.out.println(str);
  15.    }).start();
  16. }
  17. privatestaticvoid run(String str){
  18.    System.out.println(str);
  19. }
最后输出:
  1. t1
  2. t2
  3. t3
  4. t4
  5. t5

2、集合批量操作

下面打印list集合的两种写法是等价的。
  1. List<String> list =Arrays.asList("a","b","c");
  2. for(String str : list){
  3.    System.out.println(str);
  4. }
  5. list.forEach((e)->System.out.println(e));

3、流操作

下面是流查询list集合中等于 "a"的数量。
  1. list.stream().filter((e)->"a".equals(e)).count();
更多的Lambda表达式及关于流更多内容之后陆续会讲到。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:JDK8新特性之Lambda表达式
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00