जावा ट्यूटोरियल

जावा होम जावा परिचय जावा प्रारंभ करें जावा सिंटेक्स जावा टिप्पणियाँ जावा चर जावा डेटा प्रकार जावा टाइप कास्टिंग जावा ऑपरेटर्स जावा स्ट्रिंग्स जावा मठ जावा बूलियन जावा अगर ... और जावा स्विच जावा जबकि लूप लूप के लिए जावा जावा ब्रेक/जारी रखें जावा सरणी

जावा तरीके

जावा तरीके जावा विधि पैरामीटर्स जावा विधि ओवरलोडिंग जावा स्कोप जावा रिकर्सन

जावा क्लासेस

जावा ओओपी जावा क्लासेस/ऑब्जेक्ट्स जावा क्लास एट्रीब्यूट्स जावा क्लास मेथड्स जावा कंस्ट्रक्टर्स जावा संशोधक जावा एनकैप्सुलेशन जावा पैकेज / एपीआई जावा विरासत जावा बहुरूपता जावा इनर क्लासेस जावा एब्स्ट्रैक्शन जावा इंटरफ़ेस जावा Enums जावा उपयोगकर्ता इनपुट जावा तिथि जावा ऐरेलिस्ट जावा लिंक्डलिस्ट जावा हैश मैप जावा हैशसेट जावा इटरेटर जावा रैपर क्लासेस जावा अपवाद जावा रेगेक्स जावा धागे जावा लैम्ब्डा

जावा फ़ाइल हैंडलिंग

जावा फ़ाइलें जावा फ़ाइलें बनाएँ/लिखें जावा फ़ाइलें पढ़ें जावा फ़ाइलें हटाएं

जावा कैसे करें

दो नंबर जोड़ें

जावा संदर्भ

जावा कीवर्ड जावा स्ट्रिंग तरीके जावा गणित के तरीके

जावा उदाहरण

जावा उदाहरण जावा कंपाइलर जावा व्यायाम जावा प्रश्नोत्तरी जावा प्रमाणपत्र


जावा लैम्ब्डा एक्सप्रेशंस


जावा लैम्ब्डा एक्सप्रेशंस

जावा 8 में लैम्ब्डा एक्सप्रेशंस जोड़े गए थे।

लैम्ब्डा एक्सप्रेशन कोड का एक छोटा ब्लॉक है जो पैरामीटर लेता है और एक मान देता है। लैम्ब्डा एक्सप्रेशन विधियों के समान हैं, लेकिन उन्हें किसी नाम की आवश्यकता नहीं है और उन्हें एक विधि के शरीर में सही तरीके से लागू किया जा सकता है।


वाक्य - विन्यास

सबसे सरल लैम्ब्डा अभिव्यक्ति में एक पैरामीटर और एक अभिव्यक्ति होती है:

parameter -> expression

एक से अधिक पैरामीटर का उपयोग करने के लिए, उन्हें कोष्ठक में लपेटें:

(parameter1, parameter2) -> expression

अभिव्यक्ति सीमित हैं। उन्हें तुरंत एक मान वापस करना होता है, और उनमें वेरिएबल, असाइनमेंट या स्टेटमेंट जैसे या नहीं हो सकते ifहैं forअधिक जटिल संचालन करने के लिए, घुंघराले ब्रेसिज़ के साथ एक कोड ब्लॉक का उपयोग किया जा सकता है। यदि लैम्ब्डा एक्सप्रेशन को एक मान वापस करने की आवश्यकता है, तो कोड ब्लॉक में एक returnस्टेटमेंट होना चाहिए।

(parameter1, parameter2) -> { code block }

लैम्ब्डा एक्सप्रेशंस का उपयोग करना

लैम्ब्डा अभिव्यक्ति आमतौर पर किसी फ़ंक्शन के पैरामीटर के रूप में पारित की जाती है:

उदाहरण

सूची में प्रत्येक आइटम को प्रिंट करने के लिए ArrayListलैंबा एक्सप्रेशन का उपयोग करें :forEach()

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    numbers.forEach( (n) -> { System.out.println(n); } );
  }
}

लैम्ब्डा अभिव्यक्तियों को चर में संग्रहीत किया जा सकता है यदि चर का प्रकार एक इंटरफ़ेस है जिसमें केवल एक विधि है। लैम्ब्डा अभिव्यक्ति में समान संख्या में पैरामीटर और उस विधि के समान रिटर्न प्रकार होना चाहिए। जावा में इन प्रकार के कई इंटरफेस अंतर्निहित हैं, जैसे कि Consumerइंटरफ़ेस ( java.utilपैकेज में पाया गया) सूचियों द्वारा उपयोग किया जाता है।

उदाहरण

Consumerएक चर में लैम्ब्डा अभिव्यक्ति को संग्रहीत करने के लिए जावा के इंटरफ़ेस का उपयोग करें :

import java.util.ArrayList;
import java.util.function.Consumer;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(9);
    numbers.add(8);
    numbers.add(1);
    Consumer<Integer> method = (n) -> { System.out.println(n); };
    numbers.forEach( method );
  }
}

एक विधि में लैम्ब्डा अभिव्यक्ति का उपयोग करने के लिए, विधि में एक एकल-विधि इंटरफ़ेस के साथ इसके प्रकार के रूप में एक पैरामीटर होना चाहिए। इंटरफ़ेस की विधि को कॉल करने से लैम्ब्डा एक्सप्रेशन चलेगा:

उदाहरण

एक विधि बनाएं जो एक लैम्ब्डा अभिव्यक्ति को एक पैरामीटर के रूप में लेती है:

interface StringFunction {
  String run(String str);
}

public class Main {
  public static void main(String[] args) {
    StringFunction exclaim = (s) -> s + "!";
    StringFunction ask = (s) -> s + "?";
    printFormatted("Hello", exclaim);
    printFormatted("Hello", ask);
  }
  public static void printFormatted(String str, StringFunction format) {
    String result = format.run(str);
    System.out.println(result);
  }
}