Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 44

Lambda Expressions

Lambda क्या है

Lambda expression एक छोटा, बिना नाम function है जिसे आप value के रूप में इधर-उधर भेज सकते हैं। Java 8 में लाया, यह arrow -> इस्तेमाल करता है और आपको behaviour compact लिखने देता है — पूरी classes लिखे बिना sorting, looping और event handling को बढ़िया।

💡 Lambda एक छोटा function है: (parameters) -> body।

Lambda syntax

// (parameters) -> body
(x) -> x * 2                 // एक parameter
(a, b) -> a + b             // दो parameters
() -> System.out.println("Hi")  // कोई parameter नहीं
x -> {                       // block body
    int y = x + 1;
    return y;
}

बायाँ हिस्सा parameters list करता है, arrow अलग करता है, और दायाँ हिस्सा body है। एकल expressions अपने-आप return होते हैं; { } block return इस्तेमाल करता है।

Functional interfaces

interface Greeter {
    void greet(String name);    // एक abstract method
}
// lambda वो method देता है:
Greeter g = name -> System.out.println("Hi " + name);
g.greet("Aman");
Hi Aman

Lambda functional interface के साथ काम करता है — ठीक एक abstract method वाला interface। Lambda उस method का implementation बन जाता है, कोई class नहीं चाहिए।

Lists के साथ lambdas

import java.util.ArrayList;
ArrayList<Integer> nums = new ArrayList<>();
nums.add(3); nums.add(1); nums.add(2);

nums.forEach(n -> System.out.println(n));  // हर एक print
nums.sort((a, b) -> a - b);                // ascending sort
System.out.println(nums);
3
1
2
[1, 2, 3]

Lambdas collections के साथ चमकते हैं: forEach हर item पर चलाने को lambda लेता है, और sort order को lambda लेता है। पुराने loops या classes से बहुत छोटा।

Built-in functional interfaces

  • Runnable — () -> { ... }, चलाने को code।
  • Comparator — (a, b) -> ..., sorting को।
  • Predicate — x -> boolean, एक test।
  • Function — x -> result, एक transform।

Java java.util.function में कई तैयार functional interfaces देती है, तो आप शायद ही अपना define करते हैं।

Method references

// lambda:
nums.forEach(n -> System.out.println(n));
// method reference (छोटा):
nums.forEach(System.out::println);
1
2
3

जब lambda सिर्फ़ एक मौजूदा method call करे, आप उसे :: इस्तेमाल करके method reference से बदल सकते हैं। यह सबसे compact रूप है और साफ़ पढ़ा जाता है।

आम गलतियाँ

  • Non-functional interface पर lambda इस्तेमाल करना। इसमें ठीक एक abstract method होनी चाहिए।
  • Block body में return भूलना। एकल expressions अपने-आप return होते हैं; { } blocks नहीं।
  • Lambdas को ज़्यादा जटिल बनाना। लंबी logic को named method साफ़ है।
  • गलत parameter गिनती। यह interface की इकलौती method से मेल खानी चाहिए।

सारांश

  • Lambda एक छोटा, बिना नाम function है: (params) -> body।
  • यह functional interface (एक abstract method) के साथ काम करता है।
  • Lambdas collection code (forEach, sort) को संक्षिप्त बनाते हैं।
  • Java Predicate और Function जैसे तैयार functional interfaces देती है।
  • Method references (::) और छोटा रूप हैं।

आगे, data process कीजिए Stream API से, या sort कीजिए Comparator से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

Java में lambda expression क्या है?
Lambda expression बिना नाम function लिखने का छोटा तरीका है, arrow -> syntax इस्तेमाल करके। जैसे (x) -> x * 2। यह आपको behaviour को value के रूप में भेजने देता है, code को छोटा और साफ़ बनाकर।
Functional interface क्या है?
Functional interface ठीक एक abstract method वाला interface है। Lambda वहाँ इस्तेमाल हो सकता है जहाँ functional interface अपेक्षित हो, क्योंकि lambda वो इकलौती method देता है। उदाहरणों में Runnable और Comparator शामिल हैं।
Lambdas Java में कब जोड़े गए?
Lambda expressions Java 8 में लाए गए, Stream API और कई built-in functional interfaces के साथ। इन्होंने साफ़, ज़्यादा अभिव्यंजक code को Java में functional-programming शैली लाई।
Method reference क्या है?
Method reference lambda का और छोटा रूप है जो बस मौजूदा method call करता है, :: से लिखा, जैसे System.out::println। यह तब इस्तेमाल होता है जब lambda सिर्फ़ एक method call करे।
Anonymous classes के बजाय lambdas क्यों इस्तेमाल करूँ?
Lambda छोटी anonymous class जैसा काम करता है पर कहीं कम code में — कोई class boilerplate नहीं, बस logic। यह behaviour भेजने वाले code (जैसे sorting या event handling) को ज़्यादा पढ़ने योग्य बनाता है।
← Back to Java Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicStream API आपकी प्रगति: 44 / 61 (72%) · Lesson 45 / 61 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें