परिचय
Function और Predicate दोनों फंक्शनल इंटरफेस हैं जिन्हें Java 8 में Java में फंक्शनल प्रोग्रामिंग को लागू करने के लिए पेश किया गया था।
Function इंटरफेस का उपयोग ट्रांसफॉर्मेशन करने के लिए किया जाता है। यह एक आर्गुमेंट स्वीकार कर सकता है और एक परिणाम उत्पन्न करता है। दूसरी ओर, Predicate भी केवल एक आर्गुमेंट स्वीकार कर सकता है लेकिन यह केवल बूलियन मान वापस कर सकता है। इसका उपयोग शर्त का परीक्षण करने के लिए किया जाता है।
| क्र. सं. | मुख्य बिंदु | Function | Predicate |
|---|---|---|---|
| 1 | बुनियादी | यह 2 टाइप पैरामीटर ले सकता है। पहला इनपुट टाइप आर्गुमेंट टाइप को दर्शाता है और दूसरा रिटर्न टाइप को दर्शाता है। | यह एक टाइप पैरामीटर ले सकता है जो इनपुट टाइप या आर्गुमेंट टाइप को दर्शाता है। |
| 2 | रिटर्न टाइप | यह किसी भी प्रकार का मान वापस कर सकता है। | यह केवल बूलियन मान वापस कर सकता है |
| 3 | मेथड | इसमें apply() एब्सट्रैक्ट मेथड है। | इसमें test() एब्सट्रैक्ट मेथड है। |
| 4 | उपयोग का मामला | इसका उपयोग सशर्त जांच को लागू करने के लिए किया जा सकता है | इसका उपयोग ट्रांसफॉर्मेशन और मान वापस करने के लिए किया जा सकता है। |
Predicate का उदाहरण
public class Main {
public static void main(String args[]) {
List numList = new ArrayList<>();
numList.add(5);
numList.add(10);
Predicate pred = i -> i > 5;
numList.stream().filter(pred).forEach(i -> System.out.println(i));
}
} Function का उदाहरण
public class Main {
public static void main(String args[]) {
List numList = new ArrayList<>();
numList.add(78);
numList.add(10);
Function fun = i -> i / 2;
numList.stream().map(fun).forEach(System.out::println);
}
}