如何在Java 8中引入λ表达式

  介绍

本篇文章给大家分享的是有关如何在Java 8中引入λ表达式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

构造线程:

我们要想在另一个线程中执行一些代码逻辑时,通常会将代码放在一个实现运行的接口的运行方法当中,如下图:

public  static  void  main (String [], args), {   myThread 才能;t =, new  myThread ();      }   class  myThread  implements  Runnable  {   @Override才能   public 才能;void 运行(),{   ,,,System.out.println(“放入你想执行的代码“);   ,,}   }

你写这段代码的目的就是想开启新的线程来执行你定制的代码,为此你创建了myThread。

接着我们看下构造比较器:

public  static  void  main (String [], args), {   List<才能;Integer>, list =, new  ArrayList<在();   list.add才能(2);   list.add才能(5);   list.add才能(1);   list.add才能(4);   list.add才能(3);   Comparator<才能;Integer>, comparator =, new  Comparator (), {   ,,@Override   ,,,public  int 比较(o1, Integer  Integer  o2), {   ,,,,,return  o2 作用;o1群;   ,,,}   ,,};   Collections.sort才能(列表,比较器);   }

排序方法会不断调用比较方法,对顺序不对的元素进行重新排的序,直到有序为止。你写比较器的目的就是给集合的排序方法传递一段比较逻辑的代码片段,这段代码会被整合到排序排序逻辑中,为此你写了一个类和一个方法。

上述两个例子你会看到它们的相似点,将一段代码传递给其他调用者(一个线程池或者一个排序方法),这段代码会在新的方法中被调用。

但是,在Java8出现之前,如果你想传递一段代码到另一个方法里是很不方便的,因为Java是一个面向对象的语言,因此你要构建一个属于某个类的对象,由它的某个方法来放置你想传递的代码块。而在一些其他语言中可以直接传递代码块,比如JS。为此,Java决定加入了λ表达式的语法糖。

<强>λ改造

对于传入比较器代码块,我们的目的是想传入一段比较逻辑,利用λ表达式可以:

λ表达式的语法格式是:参数→一个表达式,如果想传入的代码无法用一个表达式表示,则可以用参数→{多个表达式}。如果没有参数需要传递,则可以用()→表达式的形式。

public  static  void  main (String [], args), {      ,,,List, list =, new  ArrayList<在();   ,,,list.add (2);   ,,,list.add (5);   ,,,list.add (1);   ,,,list.add (4);   ,,,list.add (3);      ,,,Collections.sort(列表,(1、2)→{   ,,,,,System.out.println(“1=?一个);   ,,,,,System.out.println(“两=? 2);   ,,,,,return  two 作用;;   ,,,});   以前,,}

编译器会解析出来> public  static  void  main (String [], args), {   new 才能;线程((),→,{   ,,,for  (int 小姐:=,0;,小姐:& lt;, 100;,我+ +),{   ,,,,,System.out.println(“这是一个线程“,+,i);   ,,,}   })才能.start ();   for 才能;(int 小姐:=,100;,小姐:& lt;, 200;,我+ +),{   ,,,System.out.println(“这是主线程“,+,i);   ,,}   }

以上就是如何在Java 8中引入λ表达式,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

如何在Java 8中引入λ表达式