找到關於 Java 8 的4330 篇文章

如何在 Java 中將 Callable 寫成 lambda 表示式?

raja
更新於 2020年7月13日 05:32:03

6K+ 次檢視

Callable 介面定義在 java.util.concurrent 包中。與只能執行執行緒的 Runnable 介面相反,Callable 物件返回由執行緒完成的計算結果。Callable 物件返回 Future 物件,該物件提供用於監視執行緒執行的任務進度的方法。Future 物件用於檢查 Callable 介面的狀態,並在執行緒完成之後從 Callable 中檢索結果。在下面的示例中,我們可以將 Callable 介面編寫為 Lambda 表示式。示例 import java.util.concurrent.*; public class LambdaCallableTest { public static void main(String args[]) throws InterruptedException { ExecutorService executor = Executors.newSingleThreadExecutor(); ... 閱讀更多

Java 中的 SAM 介面是什麼?

raja
更新於 2020年7月13日 05:26:06

5K+ 次檢視

只有一個抽象方法的介面稱為函式式介面,也稱為單抽象方法介面 (SAM 介面)。一個抽象方法意味著允許一個預設方法或一個抽象方法,其實現預設可用。SAM 介面的例項是 java.lang.Runnable、java.awt.event.ActionListener、java.util.Comparator 和 java.util.concurrent.Callable。SAM 介面可以使用 lambda 表示式或方法引用來實現。語法 @FunctionalInterface public interface Changeable { public void change(T o); } 示例 @FunctionalInterface interface MyInterface { String reverse(String n); } public class LambdaReverseTest { public static void main( String[] args ) { MyInterface myInterface = (str) -> { // ... 閱讀更多

如何在 Java 中實現對特定物件的例項方法的引用?

raja
更新於 2020年7月11日 12:53:39

550 次檢視

方法引用是 lambda 表示式的簡化形式,可以執行一個方法。它可以使用 "::" 符號來描述。對特定物件的例項方法的引用是指繫結到接收器的非靜態方法。語法 物件引用::例項方法名 示例 - 1 import java.util.*; public class InstanceMethodReferenceTest1 { public static void main(String[] args) { String[] stringArray = { "India", "Australia", "England", "Newzealand", "SouthAfrica", "Bangladesh", "WestIndies", "Zimbabwe" }; Arrays.sort(stringArray, String::compareToIgnoreCase); System.out.println(Arrays.toString(stringArray)); } } 輸出 [Australia, Bangladesh, England, India, Newzealand, SouthAfrica, WestIndies, Zimbabwe] 示例 - 2 @FunctionalInterface interface Operation { public int average(int ... 閱讀更多

Java 中方法引用和建構函式引用的區別?

raja
更新於 2020年7月11日 12:54:44

2K+ 次檢視

方法引用類似於 lambda 表示式,用於引用方法而不呼叫它,而建構函式引用用於引用建構函式而不例項化命名類。方法引用需要與 lambda 表示式類似的目標型別。但是,它們不是提供方法的實現,而是引用現有類或物件的方法,而建構函式引用為類中的不同建構函式提供不同的名稱。語法 - 方法引用:: 示例 import java.util.*; public class MethodReferenceTest { public static void main(String[] args) { List names = new ArrayList(); List selectedNames = new ArrayList(); ... 閱讀更多

Java 中 lambda 表示式中形式引數的規則是什麼?

raja
更新於 2020年7月11日 12:50:17

300 次檢視

lambda 表示式類似於具有引數、主體和返回型別的方法。它也可以被稱為匿名函式(沒有名稱的方法)。使用 lambda 表示式中的形式引數時,需要遵循一些規則。如果函式式介面的抽象方法是零引數方法,則箭頭 (->) 的左側必須使用空括號。如果函式式介面的抽象方法是一個引數方法,則括號不是必需的。如果函式式介面的抽象方法是多個引數方法,則括號是必需的。形式引數用逗號分隔,並且可以與... 閱讀更多

Java 中 lambda 表示式主體的規則是什麼?

raja
更新於 2020年7月11日 12:48:49

1K+ 次檢視

lambda 表示式是一個匿名函式(無名函式),它作為引數傳遞給另一個函式。使用 lambda 表示式的正文時,需要遵循一些規則。lambda 表示式正文的規則 lambda 表示式的正文可以是單個表示式或多個語句。如果我們使用單個表示式作為 lambda 表示式的正文,則無需用花括號({})括起正文。如果我們使用一個或多個語句作為 lambda 表示式的正文,則用花括號({})括起它們可能是必須的。語法 (引數) 或 () -> {用分號分隔的語句體} 或 單個語句 示例 interface Message { ... 閱讀更多

如何在 Java 中使用帶有 lambda 表示式的 Stream API 對集合進行排序?

raja
更新於 2020年7月11日 12:43:12

435 次檢視

Stream API 是在 Java 中實現函數語言程式設計的一種強大方法。它通常與 lambda 表示式結合使用,並提供了一種有效的方式來執行資料操作操作,例如排序、過濾、對映、歸約等。在下面的示例中,我們可以使用 Stream API 對集合進行排序。它透過使用 Comparator 介面的 sorted() 方法提供排序邏輯。如果我們有兩個 Comparator 介面例項,並且需要透過複合條件(按第一個比較器,然後按第二個比較器)進行排序,我們可以透過在第一個例項上呼叫 thenComparing() 方法並將第二個例項傳入來使用這兩個比較器。示例 import java.util.*; import java.util.stream.*; ... 閱讀更多

為什麼我們在 Java 中使用 lambda 表示式?

raja
更新於 2020年7月11日 12:43:42

3K+ 次檢視

lambda 表示式可以透過定義可以作為引數傳遞給某些方法的匿名函式來實現函式式介面。啟用函數語言程式設計:所有新的基於 JVM 的語言都在其應用程式中利用了函式式正規化,但程式設計師在 lambda 表示式出現之前被迫使用面向物件程式設計 (OOPS)。因此,lambda 表示式使我們能夠編寫函式式程式碼。可讀且簡潔的程式碼:人們已經開始使用 lambda 表示式,並報告說它可以幫助從他們的程式碼中刪除大量行。易於使用的 API 和庫:使用 lambda 表示式設計的 API 更易於使用並支援其他 API。啟用支援... 閱讀更多

Predicate 介面在 Java 中的 lambda 表示式中的重要性?

raja
更新於 2020年7月11日 12:38:14

2K+ 次檢視

謂詞 (Predicate) 是一個泛型函式式介面,它表示一個返回布林值(true 或 false)的單引數函式。此介面位於 java.util.function 包中,包含一個 test(T t) 方法,用於評估給定引數的謂詞。語法:public interface Predicate { boolean test(T t); } 示例:import java.util.*; import java.util.function.Predicate; public class LambdaPredicateTest { public static void main(String args[]) { Employee emp1 = new Employee("Raja", 26); Employee emp2 = new Employee("Jaidev", 24); Employee emp3 = new Employee("Adithya", 30); List empList = new ArrayList(); empList.add(emp1); empList.add(emp2); ... 閱讀更多

如何在Java中使用方法引用查詢集合中的最大值?

raja
更新於 2020年7月11日 12:29:58

瀏覽量:177

方法引用在 lambda 表示式中提供了一種引用方法而不執行它的方式。它需要一個目標型別上下文,該上下文包含一個相容的函式式介面。語法::: 在下面的示例中,我們可以使用方法引用找出 ArrayList 的最大值。示例:import java.util.*; class MyClass { private int val; MyClass(int v) { val = v; } int getVal() { return val; } } public class MethodReferenceMaxValueTest { static int compareMaxValue(MyClass a, MyClass b) { return a.getVal() - b.getVal(); } public ... 閱讀更多

廣告
© . All rights reserved.