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

Java 8 - Antarmuka Fungsional

Antarmuka fungsional memiliki fungsi tunggal untuk dipamerkan. Misalnya, antarmuka Sebanding dengan metode tunggal 'compareTo' digunakan untuk tujuan perbandingan. Java 8 telah mendefinisikan banyak antarmuka fungsional untuk digunakan secara ekstensif dalam ekspresi lambda. Berikut adalah daftar antarmuka fungsional yang didefinisikan dalam paket java.util.Function.


No.Sr. Antarmuka &Deskripsi
1

Konsumen Bi

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

2

BiFunction

Mewakili fungsi yang menerima dua argumen dan menghasilkan hasil.

3

Operator Biner

Mewakili operasi pada dua operan dengan tipe yang sama, menghasilkan hasil dari tipe yang sama dengan operan.

4

Predikat Bi

Mewakili predikat (fungsi bernilai Boolean) dari dua argumen.

5

Pemasok Boolean

Mewakili pemasok hasil bernilai Boolean.

6

Konsumen

Mewakili operasi yang menerima argumen input tunggal dan tidak mengembalikan hasil.

7

DoubleBinaryOperator

Mewakili operasi pada dua operan bernilai ganda dan menghasilkan hasil bernilai ganda.

8

Konsumen Ganda

Mewakili operasi yang menerima argumen tunggal bernilai ganda dan tidak mengembalikan hasil.

9

Fungsi Ganda

Mewakili fungsi yang menerima argumen bernilai ganda dan menghasilkan hasil.

10

Predikat Ganda

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

11

Pemasok Ganda

Mewakili pemasok hasil bernilai ganda.

12

DoubleToIntFunction

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

13

DoubleToLongFunction

Mewakili fungsi yang menerima argumen bernilai ganda dan menghasilkan hasil bernilai panjang.

14

DoubleUnaryOperator

Mewakili operasi pada operan bernilai ganda tunggal yang menghasilkan hasil bernilai ganda.

15

Fungsi

Mewakili fungsi yang menerima satu argumen dan menghasilkan hasil.

16

IntBinaryOperator

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

17

IntConsumer

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

18

IntFunction

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 pemasok hasil yang bernilai tinggi.

21

IntToDoubleFunction

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

22

IntToLongFunction

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

23

IntUnaryOperator

Mewakili operasi pada operan bernilai int tunggal yang menghasilkan hasil bernilai int.

24

LongBinaryOperator

Mewakili operasi pada dua operan bernilai panjang dan menghasilkan hasil bernilai panjang.

25

Konsumen Panjang

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

26

Fungsi Panjang

Mewakili fungsi yang menerima argumen bernilai panjang dan menghasilkan hasil.

27

Predikat Panjang

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

28

Pemasok Panjang

Mewakili pemasok hasil yang bernilai lama.

29

Fungsi LongToDouble

Mewakili fungsi yang menerima argumen bernilai panjang dan menghasilkan hasil bernilai ganda.

30

LongToIntFunction

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

31

LongUnaryOperator

Mewakili operasi pada operan bernilai panjang tunggal yang menghasilkan hasil bernilai panjang.

32

ObjDoubleConsumer

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

33

ObjIntConsumer

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

34

ObjLongConsumer

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

35

Predikat

Mewakili predikat (fungsi bernilai Boolean) dari satu argumen.

36

Pemasok

Mewakili pemasok hasil.

37

ToDoubleBiFunction

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

38

ToDoubleFunction

Mewakili fungsi yang menghasilkan hasil bernilai ganda.

39

ToIntBiFunction

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

40

ToIntFunction

Mewakili fungsi yang menghasilkan hasil bernilai int.

41

ToLongBiFunction

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

42

ToLongFunction

Mewakili fungsi yang menghasilkan hasil bernilai panjang.

43

UnaryOperator

Mewakili operasi pada operan tunggal yang menghasilkan hasil dengan tipe yang sama dengan operan-nya.


Contoh Antarmuka Fungsional

Predikat antarmuka adalah antarmuka fungsional dengan tes metode (Objek) untuk mengembalikan nilai Boolean. Antarmuka ini menandakan bahwa suatu objek diuji benar atau salah.

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

Java8Tester.java

Demo Langsung
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 kita telah melewati antarmuka Predikat, yang mengambil satu input dan mengembalikan Boolean.

Verifikasi Hasil

Kompilasi kelas menggunakan javac kompiler sebagai berikut

C:\JAVA>javac Java8Tester.java

Sekarang jalankan Java8Tester sebagai berikut

C:\JAVA>java Java8Tester

Ini harus menghasilkan output 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. Operator Jawa
  2. Komentar Jawa
  3. Java untuk setiap Loop
  4. String Jawa
  5. Antarmuka Jawa
  6. Kelas Anonim Java
  7. Java mencoba-dengan-sumber daya
  8. Anotasi Jawa
  9. Pernyataan Jawa
  10. Vektor Jawa