Java Academy · पाठ

Function और BiFunction

फ़ंक्शनल तरीके से मानों को बदलें

पाठ 1, कुल 4 में से13 चरण

Function और BiFunction, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Function क्या दर्शाता है

Function<T, R> java.util.function का मुख्य रूपांतरण इंटरफ़ेस है। यह T प्रकार का एक तर्क लेता है और R प्रकार का परिणाम लौटाता है।

  • इसकी एकमात्र अमूर्त विधि R apply(T t) है।
  • यह इनपुट से आउटपुट तक के शुद्ध मान-रूपांतरण को दर्शाता है।
import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<String, Integer> length = s -> s.length();
        System.out.println(length.apply("hello"));
    }
}

apply को बुलाना

आप apply को बुलाकर Function का उपयोग करते हैं। लैम्ब्डा का मुख्य भाग रूपांतरण का तर्क होता है।

  • इनपुट और आउटपुट के प्रकार अलग-अलग हो सकते हैं।
  • String::toUpperCase जैसे विधि-संदर्भ से लैम्ब्डा को बदला जा सकता है।
import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<String, String> upper = String::toUpperCase;
        System.out.println(upper.apply("java"));
    }
}

andThen संयोजन

andThen फ़ंक्शनों को क्रम से जोड़ता है: पहले का परिणाम दूसरे का इनपुट बन जाता है।

  • f.andThen(g) का अर्थ g(f(x)) है।
  • इसे बाएँ से दाएँ पढ़ा जाता है।
import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<Integer, Integer> times2 = n -> n * 2;
        Function<Integer, Integer> plus3 = n -> n + 3;
        System.out.println(times2.andThen(plus3).apply(5));
    }
}

compose संयोजन

compose में तर्क वाला फ़ंक्शन पहले चलता है।

  • f.compose(g) का अर्थ f(g(x)) है।
  • यह andThen का उलटा रूप है।
import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<Integer, Integer> times2 = n -> n * 2;
        Function<Integer, Integer> plus3 = n -> n + 3;
        System.out.println(times2.compose(plus3).apply(5));
    }
}

Function.identity

Function.identity() ऐसा फ़ंक्शन लौटाता है जो अपने इनपुट को बिना बदले वापस देता है।

  • यह स्ट्रीम संग्राहकों और डिफ़ॉल्ट मान-रूपांतरणों में उपयोगी है।
  • यह x -> x के समतुल्य है।
import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<String, String> id = Function.identity();
        System.out.println(id.apply("unchanged"));
    }
}

BiFunction से परिचय

BiFunction<T, U, R> दो तर्क लेता है और एक परिणाम लौटाता है।

  • इसकी विधि R apply(T t, U u) है।
  • यह दो मानों को मिलाने, जैसे मानचित्रों को मर्ज करने, के लिए उपयोगी है।
import java.util.function.BiFunction;

public class Main {
    public static void main(String[] args) {
        BiFunction<Integer, Integer, Integer> add = (a, b) -> a + b;
        System.out.println(add.apply(4, 6));
    }
}

अलग-अलग प्रकारों वाला BiFunction

BiFunction के तीनों प्रकार-पैरामीटर अलग-अलग हो सकते हैं।

  • यहाँ हम एक String और एक int को एक String में मिलाते हैं।
import java.util.function.BiFunction;

public class Main {
    public static void main(String[] args) {
        BiFunction<String, Integer, String> repeat = (s, n) -> s.repeat(n);
        System.out.println(repeat.apply("ab", 3));
    }
}

BiFunction और andThen

BiFunction भी andThen का समर्थन करता है। यह परिणाम पर आगे की प्रक्रिया करने के लिए एक-तर्क वाला Function लेता है।

  • BiFunction में compose नहीं है, क्योंकि इसके लिए दो इनपुट की आवश्यकता होती।
import java.util.function.BiFunction;
import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        BiFunction<Integer, Integer, Integer> add = (a, b) -> a + b;
        Function<Integer, String> label = n -> "sum=" + n;
        System.out.println(add.andThen(label).apply(7, 8));
    }
}

संग्रहों में फ़ंक्शन

कई एपीआई Function स्वीकार करते हैं। उदाहरण के लिए, Map.computeIfAbsent अनुपस्थित कुंजियों के लिए मान-रूपांतरण फ़ंक्शन लेता है।

import java.util.HashMap;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> lengths = new HashMap<>();
        lengths.computeIfAbsent("hello", String::length);
        System.out.println(lengths);
    }
}

चरों में फ़ंक्शन रखना

फ़ंक्शन ऑब्जेक्ट होने के कारण आप उन्हें रख सकते हैं, आगे भेज सकते हैं और वापस कर सकते हैं। यही कार्यात्मक शैली वाले Java का आधार है।

import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<Integer, Integer> square = n -> n * n;
        Function<Integer, Integer> cube = n -> n * n * n;
        Function<Integer, Integer> chosen = square;
        System.out.println(chosen.apply(5));
    }
}

रूपांतरण-श्रृंखला बनाना

andThen को बार-बार जोड़ने से ऐसी रूपांतरण-श्रृंखला बनती है जिसे पढ़ना और दोबारा उपयोग करना आसान होता है।

import java.util.function.Function;

public class Main {
    public static void main(String[] args) {
        Function<String, String> trim = String::trim;
        Function<String, String> upper = String::toUpperCase;
        Function<String, Integer> len = String::length;
        System.out.println(trim.andThen(upper).andThen(len).apply("  abc "));
    }
}

त्वरित जाँच

f.andThen(g).apply(x) क्या निकालता है?

पुनरावृत्ति

आपने मुख्य रूपांतरण इंटरफ़ेस सीखे:

  • Function<T,R> apply से एक मान का रूपांतरण करता है।
  • andThen आगे की दिशा में जोड़ता है (g(f(x))); compose पीछे की दिशा में जोड़ता है (f(g(x))).
  • Function.identity() अपना इनपुट वापस देता है।
  • BiFunction<T,U,R> दो इनपुट सँभालता है और andThen का समर्थन करता है, लेकिन compose का नहीं।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Java सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
104
पाठ
374

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

क्या “Function और BiFunction” पाठ निःशुल्क है?

हाँ—“Function और BiFunction” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Function और BiFunction” में मैं क्या सीखूँगा?

फ़ंक्शनल तरीके से मानों को बदलें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“Function और BiFunction” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Function और BiFunction
  2. Supplier और Consumer
  3. Predicate और Composition
  4. कस्टम फ़ंक्शनल इंटरफ़ेस
← Java Academy पर वापस जाएँ