第七章 Java新特性玩轉 JDK8之 lambda表達式

                   Java新特性玩轉 JDK8之 lambda表達式

  • 講解什麼是函數式編程和什麼是lambda表達式
           JDK8之前,Java是不⽀持函數式編程的,所謂的函數編程,即可理解是將⼀個函數(也稱爲⾏爲”)作爲⼀個參數進⾏傳遞, ⾯向對象編程是對數據的抽象(各種各樣的POJO類),⽽函數式編程則是對⾏爲的抽象(將⾏爲作爲⼀個參數進⾏傳遞)
 
  • java創建線程再熟悉不過了

       jdk8之前創建線程

new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("⼩滴課堂學習Java架構教程");
   }
 });
  • jdk8之後Lambda表達式則只需要使⽤⼀句話
new Thread(() -> System.out.println("學習Java架構教程"));

 

  • ​​​​​​​集合容器⾥⾯的字符串排序 使⽤前​​​​​​​
List<String> list =Arrays.asList("aaa","ggg","ffff","ccc");
    Collections.sort(list, new Comparator<String>() {
    @Override
    public int compare(String a, String b) {
        return b.compareTo(a);
      }
    }
  );
  for (String string : list) {
     System.out.println(string);
  }
  • 使⽤後
 List<String> list =Arrays.asList("aaa","ggg","ffff","ccc");
     Collections.sort(list, (a,b)->b.compareTo(a)
   );
     for (String string : list) {
     System.out.println(string);
 }
  • lambda表達式 使⽤場景(前提):⼀個接⼝中只包含⼀個⽅法,則可以使⽤Lambda表達式,這樣 的接⼝稱之爲函數接⼝語法: (params) -> expression

      ​​​​​​​   第⼀部分爲括號內⽤逗號分隔的形式參數,參數是函數式接⼝⾥⾯⽅法的參數;第⼆部分爲⼀個箭頭符號:->;第三部分爲⽅法體,可以是表達式和代碼塊

參數列表 :

括號中參數列表的數據類型可以省略不寫
括號中的參數只有⼀個,那麼參數類型和()都可以省略不寫
⽅法體:
如果{}中的代碼只有⼀⾏,⽆論有返回值,可以省略{}return,分號,要⼀起省略,其他
則需要加上
  • 好處: Lambda 表達式的實現⽅式在本質是以匿名內部類的⽅式進⾏實現

       重構現有臃腫代碼,更⾼的開發效率,尤其是集合Collection操作的時候,後續會講到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章