真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在Java8中引入lambda表達式

本篇文章給大家分享的是有關(guān)如何在Java 8中引入lambda表達式,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

構(gòu)造線程:

我們要想在另一個線程中執(zhí)行一些代碼邏輯時,通常會將代碼放在一個實現(xiàn)Runnable接口的run方法當(dāng)中,如下圖:

public static void main(String[] args) {
  myThread t = new myThread();

}
class myThread implements Runnable {
  @Override
  public void run() {
    System.out.println("放入你想執(zhí)行的代碼");
  }
}

你寫這段代碼的目的就是想開啟新的線程來執(zhí)行你定制的代碼,為此你創(chuàng)建了myThread。

接著我們看下構(gòu)造比較器:

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);
  Comparator comparator = new Comparator() {
    @Override
    public int compare(Integer o1, Integer o2) {
      return o2 - o1;
    }
  };
  Collections.sort(list, comparator);
}

sort 方法會不斷調(diào)用compare 方法,對順序不對的元素進行重新排序,直到有序為止。你寫比較器的目的就是給Collections的sort方法傳遞一段比較邏輯的代碼片段,這段代碼會被整合到排序排序邏輯中,為此你寫了一個類和一個方法。

上述兩個例子你會看到它們的相似點,將一段代碼傳遞給其他調(diào)用者(一個線程池或者一個排序方法),這段代碼會在新的方法中被調(diào)用。

但是,在Java8出現(xiàn)之前,如果你想傳遞一段代碼到另一個方法里是很不方便的,因為Java是一個面向?qū)ο蟮恼Z言,因此你要構(gòu)建一個屬于某個類的對象,由它的某個方法來放置你想傳遞的代碼塊。而在一些其他語言中可以直接傳遞代碼塊,比如JS。為此,Java決定加入了lambda表達式的語法糖。

lambda改造

對于傳入比較器代碼塊,我們的目的是想傳入一段比較邏輯,利用lambda表達式可以:

lambda表達式的語法格式是:參數(shù)->一個表達式,如果想傳入的代碼無法用一個表達式表示,則可以用 參數(shù)->{多個表達式}。如果沒有參數(shù)需要傳遞,則可以用()->表達式的形式。

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(list, (one,two)->{
      System.out.println("one="+one);
      System.out.println("two="+two);
      return two - one;
    });
  }

編譯器會解析出來 one 與 two 是原先接口compare方法的入?yún)?,并自動賦予Integer類型。

對于構(gòu)造線程,我們的目的就是想傳入一段線程執(zhí)行的代碼,利用lambda表達式可以這樣做:

public static void main(String[] args) {
  new Thread(() -> {
    for (int i = 0; i < 100; i++) {
      System.out.println("這是一個線程" + i);
    }
  }).start();
  for (int i = 100; i < 200; i++) {
    System.out.println("這是主線程" + i);
  }
}

以上就是如何在Java 8中引入lambda表達式,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前文章:如何在Java8中引入lambda表達式
網(wǎng)站鏈接:http://www.weahome.cn/article/jjijgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部