找到 4330 篇文章 關於 Java 8
6K+ 瀏覽量
Callable 介面定義在 java.util.concurrent 包中。Callable 的物件返回由執行緒完成的計算結果,這與 Runnable 介面形成對比,Runnable 介面只能執行執行緒。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(); ... 閱讀更多
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) -> { // ... 閱讀更多
550 瀏覽量
方法引用是 lambda 表示式的簡化形式,可以執行一個方法。它可以使用 "::" 符號來描述。對特定物件的例項方法的引用是指繫結到接收者的非靜態方法。語法物件引用::例項方法名示例 - 1import 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 ... 閱讀更多
2K+ 瀏覽量
方法引用類似於 lambda 表示式,用於引用方法而不呼叫它,而建構函式引用用於引用建構函式而不例項化命名類。方法引用需要與 lambda 表示式類似的目標型別。但它們不是提供方法的實現,而是引用現有類或物件的方法,而建構函式引用為類中的不同建構函式提供不同的名稱。語法 - 方法引用::示例import java.util.*; public class MethodReferenceTest { public static void main(String[] args) { List names = new ArrayList(); List selectedNames = new ArrayList(); ... 閱讀更多
435 瀏覽量
Stream API 是在 Java 中實現函數語言程式設計的強大方法。它通常與 lambda 表示式結合使用,並提供了一種有效的方式來執行資料操作操作,如排序、過濾、對映、歸約等。在下面的示例中,我們可以使用 Stream API 對集合進行排序。它透過使用 Comparator 介面的 sorted() 方法提供排序邏輯。如果我們有兩個 Comparator 介面例項,並且需要根據複合條件(根據第一個比較器,然後根據第二個比較器)進行排序,我們可以透過在第一個例項上呼叫 thenComparing() 方法並將第二個例項傳遞進來,來使用這兩個比較器。示例import java.util.*; import java.util.stream.*; ... 閱讀更多
3K+ 瀏覽量
lambda 表示式可以透過定義可以作為引數傳遞給某些方法的匿名函式來實現函式式介面。啟用函數語言程式設計:所有新的基於 JVM 的語言都利用其應用程式中的函式式正規化,但程式設計師被迫使用面向物件程式設計 (OOPS),直到 lambda 表示式出現。因此,lambda 表示式使我們能夠編寫函式式程式碼。可讀且簡潔的程式碼:人們已經開始使用 lambda 表示式,並報告說它可以幫助從他們的程式碼中刪除大量行。易於使用的 API 和庫:使用 lambda 表示式設計的 API 更易於使用並支援其他 API。啟用支援... 閱讀更多
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); ... 閱讀更多
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 ... 閱讀更多
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP