Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่างฟังก์ชันและเพรดิเคตใน Java 8


Function และ Predicate ทั้ง functional interface ถูกนำมาใช้ใน Java 8 เพื่อใช้การเขียนโปรแกรมเชิงฟังก์ชันใน Java

อินเทอร์เฟซของฟังก์ชันใช้สำหรับการแปลง สามารถรับหนึ่งอาร์กิวเมนต์และสร้างผลลัพธ์ได้ ในอีกด้านหนึ่ง เพรดิเคตยังสามารถยอมรับอาร์กิวเมนต์เดียวเท่านั้น แต่สามารถส่งกลับค่าบูลีนเท่านั้น ใช้สำหรับทดสอบสภาพ

ซีเนียร์ เลขที่ คีย์ ฟังก์ชัน ภาคแสดง
1
พื้นฐาน
สามารถรับพารามิเตอร์ได้ 2 แบบ อันแรกแทนประเภทอาร์กิวเมนต์ประเภทอินพุต และอันที่สองแทนประเภทการส่งคืน
สามารถใช้พารามิเตอร์ประเภทหนึ่งซึ่งแสดงถึงประเภทอินพุตหรือประเภทอาร์กิวเมนต์
2
ประเภทการส่งคืน
สามารถคืนค่าประเภทใดก็ได้
ส่งคืนค่าบูลีนได้เท่านั้น
3
วิธีการ
มีวิธีการใช้นามธรรม ()
มีการทดสอบวิธีนามธรรม ()
4.
ใช้ตัวพิมพ์
สามารถใช้ในการตรวจสอบเงื่อนไขได้
สามารถใช้สำหรับการแปลงและคืนค่าได้

ตัวอย่างภาคแสดง

public class Main {
   public static void main(String args[]) {
      List<Integer> numList = new ArrayList<>();
      numList.add(5);
      numList.add(10);
      Predicate<Integer> pred = i -> i > 5;
      numList.stream().filter(pred).forEach(i -> System.out.println(i));
   }
}

ตัวอย่างฟังก์ชัน

public class Main {
   public static void main(String args[]) {
      List<Integer> numList = new ArrayList<>();
      numList.add(78);
      numList.add(10);
      Function<Integer, Integer> fun = i -> i / 2;
      numList.stream().map(fun).forEach(System.out::println);    
   }
}