java中lambda用法,java lambda表达式

  java中lambda用法,java lambda表达式

  什么是lambda表达式?

  Lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。

  推荐java相关视频教程:java学习视频

  例如:

  类操作实现ActionListener{

  @覆盖

  public void action performed(action event e){

  System.out.println(now time是 new Date());

  Toolkit.getDefaultToolkit()。beep();

  }

  }

  公共类Main{

  公共静态void main(String[] args){

  动作a=新动作();

  定时器timer=新定时器(2000,a);

  timer . start();

  joptionpane . showmessagedialog(null,是否退出?);

  //此窗口用于防止主线程在执行后直接结束。

  }

  }这段代码中action类的A对象其实只是作为代码段传递给Timer的构造函数。因为java是一种基于面向对象思想的语言,没有函数调用,没有代码段传递,所以需要的代码必须封装在一个类中,即上面的action类。有了lambda表达式,代码可以更简洁。

  以上用表示如下:

  公共类Main{

  公共静态void main(String[] args){

  Timer timer=新计时器(2000,(动作事件e)-{

  System.out.println(现在时间是 new Date());

  Toolkit.getDefaultToolkit()。beep();

  });

  timer . start();

  //结束

  }

  }如果使用lambda表达式,代码可以非常简洁吗?如果E的类型可以从下面推导出来,那么参数类型可以省略。如果只有一个参数,括号也可以省略,如下所示:

  电子邮件

  System.out.println("现在时间是" new Date());

  Toolkit.getDefaultToolkit()。beep();

  }这个lambda表达式可以等价于:

  ActionListener al=e-{

  System.out.println("现在时间是" new Date());

  Toolkit.getDefaultToolkit()。beep();

  }然后把al扔进定时器构造函数里。

  作为接口,ActionListener只有一个抽象方法,这是作为函数接口必须满足的条件。函数接口可以写成lambda表达式。

  实现另一个按长度码排序的字符串数组,很好理解:

  公共类Main{

  公共静态void main(String[] args){

  String[] con=new String[]{apple , cat , bannane , foot , do };

  Arrays.sort(con,(str1,str 2)-str 1 . length()-str 2 . length());

  //这里的第一个实现因为直接返回值,所以没有加 { 和 } ,所以不需要加;上下文可以推断这是一个字符串参数,

  //所以不需要添加参数类型

  ComparatorString compare=(str1,str 2)-S1 . length()-S2 . length();

  Arrays.sort(con,compare);//对于第二种实现,也可以编写一个类来实现Comparator中的compare方法。

  //例如:

  com com 1=new com();

  arrays . sort(con . com 1);//它的本质是传递一段代码

  }

  类com实现CompartorString{

  @覆盖

  public void compare(String str1,String str2){

  返回str 1 . length()-str 2 . length();

  }

  }

  }本文通过java快速入门专栏详细介绍java中的lambda表达式。欢迎大家一起学习!以上是java中Lambda表达式的详细介绍。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: