日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA 8 StreamAPI 和 lambda表达式 总结(一)--lambda表达式

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA 8 StreamAPI 和 lambda表达式 总结(一)--lambda表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這些天看見另一本好書《給大忙人看的Java SE 8》,其中的新特性 StreamAPI 和 lambda表達式 是之前jdk沒有提供的新特性,也是jdk8 重要的更新內容,我會總結一下它們的用法,更詳細的參見書本。

  • lambda表達式的概念
    人對一個概念的理解是隨著時間漸漸加深的,之前也見過lambda表達式,但那時候學起來完全摸不到頭腦,這兩天重新去看,終于有了一些概念,可以想象,過段時間會更加知道為什么會有lambda表達式,大牛們為什么會去設計這種函數式語言?
  • java里大家都知道匿名函數,下面是一個多線程的創建例子:

    package JDK;/*** Created by panqian on 2017/2/20.*/ public class Lambda_1 {public static void main(String[] args) {//傳統創建線程new Thread(new Runnable() {@Overridepublic void run() {System.out.println("傳統創建線程");}}).start();//使用lambda表達式new Thread(()->{System.out.println("lambda表達式");}).start();} }

    ?

    同樣是傳入Runnable實現類,lambda表達式的寫法比傳統的更加簡潔。再看一個集合排序 List<Integer> list = new ArrayList<>();list.add(3);list.add(1);list.add(2);System.out.println("排序前: " + list.toString());Collections.sort(list, (Integer x, Integer y) -> {return x > y ? 1 : -1;});System.out.println("排序后: " + list.toString());

    ?

    可以看出 lambda表達式由 參數((Integer x, Integer y)),剪頭(->),代碼塊({
    return x > y ? 1 : -1; })組成。 lambda表達式很大的一個使用場景就是替代java的內部類,做到代碼簡潔,易讀。

    2.方法引用
    對于上面的代碼還不是最簡潔的,如果在lambda表達式中引用別的方法,可以拿lambda表達式里面的方法引用:

    拿前面集合排序的例子繼續簡化:

    List<Integer> list1 = new ArrayList<>(); list1.add(3); list1.add(1); list1.add(2);System.out.println("排序前: " + list1.toString());//::前面是類,后面是方法,壓縮到只有一句,等同于 // // (Integer x, Integer y) -> { // return Integer.compare(x,y); // } list1.sort(Integer::compare);System.out.println("排序前: " + list1.toString());

    ?

    可以看出它由

    對象::實例方法 類::靜態方法

    格式組成

    Integer::compare這個表達式沒有參數,它會根據上下文自動判斷應該傳入什么參數,達到排序的目的。

    未完待續

    轉載于:https://www.cnblogs.com/lovejj1994/p/7182158.html

    總結

    以上是生活随笔為你收集整理的JAVA 8 StreamAPI 和 lambda表达式 总结(一)--lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。