Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Menguasai Antarmuka Fungsional Java 8: Panduan Lengkap

Antarmuka fungsional memiliki satu fungsionalitas untuk ditampilkan. Sebagai contoh, antarmuka Comparable dengan satu metode ‘compareTo’ digunakan untuk tujuan perbandingan. Java 8 telah mendefinisikan banyak antarmuka fungsional yang akan digunakan secara luas dalam ekspresi lambda. Berikut adalah daftar antarmuka fungsional yang didefinisikan dalam paket java.util.Function.

Sr.No.Interface & Description
1

BiConsumer<T,U>

Mewakili operasi yang menerima dua argumen masukan, dan tidak mengembalikan hasil.

2

BiFunction<T,U,R>

Mewakili fungsi yang menerima dua argumen dan menghasilkan hasil.

3

BinaryOperator<T>

Mewakili operasi pada dua operand dari jenis yang sama, menghasilkan hasil dari jenis yang sama dengan operand.

4

BiPredicate<T,U>

Mewakili predikat (fungsi bernilai Boolean) dari dua argumen.

5

BooleanSupplier

Mewakili penyedia hasil bernilai Boolean.

6

Consumer<T>

Mewakili operasi yang menerima satu argumen masukan dan tidak mengembalikan hasil.

7

DoubleBinaryOperator

Mewakili operasi pada dua operand bernilai double dan menghasilkan hasil bernilai double.

8

DoubleConsumer

Mewakili operasi yang menerima satu argumen bernilai double dan tidak mengembalikan hasil.

9

DoubleFunction<R>

Mewakili fungsi yang menerima argumen bernilai double dan menghasilkan hasil.

10

DoublePredicate

Mewakili predikat (fungsi bernilai Boolean) dari satu argumen bernilai double.

11

DoubleSupplier

Mewakili penyedia hasil bernilai double.

12

DoubleToIntFunction

Mewakili fungsi yang menerima argumen bernilai double dan menghasilkan hasil bernilai int.

13

DoubleToLongFunction

Mewakili fungsi yang menerima argumen bernilai double dan menghasilkan hasil bernilai long.

14

DoubleUnaryOperator

Mewakili operasi pada satu operand bernilai double yang menghasilkan hasil bernilai double.

15

Function<T,R>

Mewakili fungsi yang menerima satu argumen dan menghasilkan hasil.

16

IntBinaryOperator

Mewakili operasi pada dua operand bernilai int dan menghasilkan hasil bernilai int.

17

IntConsumer

Mewakili operasi yang menerima satu argumen bernilai int dan tidak mengembalikan hasil.

18

IntFunction<R>

Mewakili fungsi yang menerima argumen bernilai int dan menghasilkan hasil.

19

IntPredicate

Mewakili predikat (fungsi bernilai Boolean) dari satu argumen bernilai int.

20

IntSupplier

Mewakili penyedia hasil bernilai int.

21

IntToDoubleFunction

Mewakili fungsi yang menerima argumen bernilai int dan menghasilkan hasil bernilai double.

22

IntToLongFunction

Mewakili fungsi yang menerima argumen bernilai int dan menghasilkan hasil bernilai long.

23

IntUnaryOperator

Mewakili operasi pada satu operand bernilai int yang menghasilkan hasil bernilai int.

24

LongBinaryOperator

Mewakili operasi pada dua operand bernilai long dan menghasilkan hasil bernilai long.

25

LongConsumer

Mewakili operasi yang menerima satu argumen bernilai long dan tidak mengembalikan hasil.

26

LongFunction<R>

Mewakili fungsi yang menerima argumen bernilai long dan menghasilkan hasil.

27

LongPredicate

Mewakili predikat (fungsi bernilai Boolean) dari satu argumen bernilai long.

28

LongSupplier

Mewakili penyedia hasil bernilai long.

29

LongToDoubleFunction

Mewakili fungsi yang menerima argumen bernilai long dan menghasilkan hasil bernilai double.

30

LongToIntFunction

Mewakili fungsi yang menerima argumen bernilai long dan menghasilkan hasil bernilai int.

31

LongUnaryOperator

Mewakili operasi pada satu operand bernilai long yang menghasilkan hasil bernilai long.

32

ObjDoubleConsumer<T>

Mewakili operasi yang menerima argumen bernilai objek dan argumen bernilai double, dan tidak mengembalikan hasil.

33

ObjIntConsumer<T>

Mewakili operasi yang menerima argumen bernilai objek dan argumen bernilai int, dan tidak mengembalikan hasil.

34

ObjLongConsumer<T>

Mewakili operasi yang menerima argumen bernilai objek dan argumen bernilai long, dan tidak mengembalikan hasil.

35

Predicate<T>

Mewakili predikat (fungsi bernilai Boolean) dari satu argumen.

36

Supplier<T>

Mewakili penyedia hasil.

37

ToDoubleBiFunction<T,U>

Mewakili fungsi yang menerima dua argumen dan menghasilkan hasil bernilai double.

38

ToDoubleFunction<T>

Mewakili fungsi yang menghasilkan hasil bernilai double.

39

ToIntBiFunction<T,U>

Mewakili fungsi yang menerima dua argumen dan menghasilkan hasil bernilai int.

40

ToIntFunction<T>

Mewakili fungsi yang menghasilkan hasil bernilai int.

41

ToLongBiFunction<T,U>

Mewakili fungsi yang menerima dua argumen dan menghasilkan hasil bernilai long.

42

ToLongFunction<T>

Mewakili fungsi yang menghasilkan hasil bernilai long.

43

UnaryOperator<T>

Mewakili operasi pada satu operand yang menghasilkan hasil dari jenis yang sama dengan operandnya.

Contoh Antarmuka Fungsional

Antarmuka Predicate <T> adalah antarmuka fungsional dengan metode test(Object) untuk mengembalikan nilai Boolean. Antarmuka ini menunjukkan bahwa suatu objek diuji untuk benar atau salah.

Buat program Java berikut menggunakan editor pilihan Anda, katakanlah di C:\> JAVA.

Java8Tester.java

Live Demo
 import java.util.Arrays; import java.util.List; import java.util.function.Predicate; public class Java8Tester { public static void main(String args[]) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); // Predicate<Integer> predicate = n -> true // n is passed as parameter to test method of Predicate interface // test method will always return true no matter what value n has. System.out.println("Print all numbers:"); //pass n as parameter eval(list, n->true); // Predicate<Integer> predicate1 = n -> n%2 == 0 // n is passed as parameter to test method of Predicate interface // test method will return true if n%2 comes to be zero System.out.println("Print even numbers:"); eval(list, n-> n%2 == 0 ); // Predicate<Integer> predicate2 = n -> n > 3 // n is passed as parameter to test method of Predicate interface // test method will return true if n is greater than 3. System.out.println("Print numbers greater than 3:"); eval(list, n-> n > 3 ); } public static void eval(List<Integer> list, Predicate<Integer> predicate) { for(Integer n: list) { if(predicate.test(n)) { System.out.println(n + " "); } } } } 

Di sini kami telah meneruskan antarmuka Predicate, yang menerima satu masukan dan mengembalikan Boolean.

Verifikasi Hasil

Kompilasi kelas menggunakan compiler javac seperti berikut −

 C:\JAVA>javac Java8Tester.java 

Sekarang jalankan Java8Tester seperti berikut −

 C:\JAVA>java Java8Tester 

Hasilnya akan seperti berikut −

 Print all numbers: 1 2 3 4 5 6 7 8 9 Print even numbers: 2 4 6 8 Print numbers greater than 3: 4 5 6 7 8 9 

java

  1. Menguasai Operator Java: Tipe, Sintaks, & Contoh Praktis
  2. Komentar Java: Tipe, Penggunaan, dan Best Practices
  3. Menguasai Java Enhanced For Loop: Sintaks, Contoh, dan Best Practices
  4. Menguasai String Java: Pembuatan, Metode, dan Best Practices
  5. Menguasai Antarmuka Java: Konsep, Implementasi, dan Praktik Terbaik
  6. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  7. Menguasai Java Try-with-Resources: Manajemen Sumber Daya Otomatis Dijelaskan
  8. Anotasi Java Dijelaskan: Jenis, Penempatan, dan Contoh Praktis
  9. Pernyataan Java: Panduan Praktis untuk Mendeteksi Bug dan Memastikan Keandalan Kode
  10. Memahami Java Vector: Penggunaan, Fitur, dan Perbandingan dengan ArrayList