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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Lambda

發布時間:2024/3/12 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lambda 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一. 簡介
  • 二. 使用效果
    • 2.1 未使用 lambda 和 使用 lambda 的區別
  • 三. 基本語法
  • 四. 函數式接口

一. 簡介

Lambda 是一個匿名函數,我們可以把 Lambda 表達式理解為是一段可以傳遞的代碼(將代碼 像數據一樣進行傳遞)。可以寫出更簡潔、更 靈活的代碼。作為一種更緊湊的代碼風格,使 Java的語言表達能力得到了提升.

二. 使用效果

2.1 未使用 lambda 和 使用 lambda 的區別

/*** 未使用 lambda 表達式*/@Testpublic void test01() {Comparator<Integer> comparator1 = new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return Integer.compare(o1,o2);}};TreeSet set = new TreeSet(comparator1);}/*** 使用 lambda 表達式*/@Testpublic void test02() {// 使用 lambdaComparator<Integer> comparator = (o1,o2) -> Integer.compare(o1,o2);TreeSet set = new TreeSet(comparator);}

三. 基本語法

Lambda 表達式在Java 語言中引入了一個新的語法元 素和操作符。這個操作符為 “->” , 該操作符被稱 為 Lambda 操作符或剪頭操作符。它將 Lambda 分為 兩個部分:
左側:指定了 Lambda 表達式需要的所有參數
右側:指定了 Lambda 體,即 Lambda 表達式要執行 的功能。

// 語法格式一: 無參, 無返回值, lambda 體只需要執行一條語句Runnable runnable = () -> System.out.println("hello world");// 語法格式二: 有一個參數, 并且無返回值Consumer<String> consumer = (args) -> System.out.println(args);// 語法格式三: 只有一個參數時,參數的小括號可以省略Consumer<String> consumer2 = args -> System.out.println(args);// 語法格式四: lambda 需要兩個參數,多行執行語句,并且有返回值Comparator<Integer> comparator = (a, b) -> {System.out.println("hello world");return Integer.compare(a, b);};// 語法格式五: lambda 需要兩個參數,一條執行語句,并且有返回值Comparator<Integer> comparator2 = (a, b) -> Integer.compare(a, b);// 語法格式六: lambda 表達式的參數列表的數據類型可以省略不寫,因為 jvm 編譯器可以通過上下文推斷出數據類型,即"類型推斷"Comparator<Integer> comparator3 = (Integer a, Integer b) -> Integer.compare(a, b);

四. 函數式接口

只包含一個抽象方法的接口,稱為函數式接口。
你可以通過 Lambda 表達式來創建該接口的對象。(若 Lambda
表達式拋出一個受檢異常,那么該異常需要在目標接口的抽象方
法上進行聲明)。
我們可以在任意函數式接口上使用 @FunctionalInterface 注解,
這樣做可以檢查它是否是一個函數式接口,同時 javadoc 也會包含一條聲明,說明這個接口是一個函數式接口。
Lambda 表達式需要"函數式接口"的支持
一個抽象方法不會報錯.

兩個抽象方法編譯報錯.

總結

以上是生活随笔為你收集整理的Lambda的全部內容,希望文章能夠幫你解決所遇到的問題。

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