विज्ञापन

यदि आप एक जावा प्रोग्रामर हैं और आप जावा 8 लैम्ब्डा के बारे में अधिक जानने में रुचि रखते हैं, तो इस लेख में हम लैम्ब्डा सिंटैक्स और उपयोग पर करीब से नज़र डालने जा रहे हैं।

भेड़ का बच्चा अभिव्यक्ति जावा एक अभिव्यक्ति में एक वर्ग की विधि को व्यक्त करने का एक संक्षिप्त तरीका है। इसमें मापदंडों और एक निकाय की सूची है। शरीर एकल हो सकता है अभिव्यक्ति या ब्लॉक 10 कोर जावा कॉन्सेप्ट आपको शुरू करते समय सीखना चाहिएचाहे आप GUI लिख रहे हों, सर्वर-साइड सॉफ़्टवेयर विकसित कर रहे हों, या Android का उपयोग कर एक मोबाइल एप्लिकेशन सीख रहे हों, जावा सीखना आपकी अच्छी सेवा करेगा। यहां कुछ कोर जावा कॉन्सेप्ट हैं जिनकी मदद से आप शुरुआत कर सकते हैं। अधिक पढ़ें . यह आमतौर पर उपयोग किया जाता है जहां एक इंटरफ़ेस के कार्यान्वयन की आवश्यकता होती है। यह आवश्यकता आमतौर पर तब उत्पन्न होती है जब किसी विधि को लागू करने के लिए एक इंटरफ़ेस की आवश्यकता होती है।

कुछ सरल लम्बदा एक्सप्रेशंस

आइए हम लैम्ब्डा अभिव्यक्ति के कुछ सरल उदाहरण देखें।

निम्नलिखित एक लंबोदर अभिव्यक्ति है जो दो संख्याओं को स्वीकार करता है एक्स तथा y और योग की गणना करता है।

instagram viewer
(int x, int y) -> x + y; 

अधिक संक्षिप्त प्रतिनिधित्व के लिए पैरामीटर प्रकारों को छोड़ें:

(x, y) -> x + y; 

एक फ़ंक्शन को परिभाषित करें जो कोई पैरामीटर स्वीकार नहीं करता है:

() -> 404; 

निम्नलिखित भी मान्य है, जो कोई पैरामीटर स्वीकार नहीं करता है और कुछ भी नहीं लौटाता है:

() -> {}

एक पैरामीटर के लिए पैरामीटर संलग्न करने वाले परांठे की कोई आवश्यकता नहीं है:

x -> x + 1। 

अधिक जटिल कोड ब्लॉक भी संभव हैं। निम्नलिखित लैम्ब्डा एकल को स्वीकार करता है लाइन पैरामीटर और उस पर कुछ प्रसंस्करण करता है। ध्यान दें कि पैरामीटर का प्रकार आसपास के संदर्भ से अनुमानित है:

पंक्ति -> { स्ट्रिंग [] x = pattern.split (लाइन); नए खिलाड़ी लौटें (Integer.parseInt (x [0]), x [1], x [2], x [3], Integer.parseInt (x [4])); }

स्वच्छ और संक्षिप्त कोडिंग

लैम्ब्डा एक्सप्रेशन का उपयोग करने से आपके कोड को साफ और संक्षिप्त बनाने में मदद मिलती है। इसमें सहायता करने के लिए, जावा 8 कक्षाएं लैम्ब्डा का व्यापक उपयोग करती हैं।

एक सूची या एक सेट पर लूपिंग

संग्रह कक्षाएं जैसे सूची, सेट, कतार, और इस तरह के कार्यान्वयन iterable इंटरफ़ेस जो तत्वों को अधिक आसान बनाता है।

नामों की सूची घोषित करें।

सूची नाम = Arrays.asList ("जो", "जैक", "जेम्स", "अल्बर्ट"); 

लंबोदर के बिना सूची में लूप:

के लिए (स्ट्रिंग नाम: नाम) {System.out.println (नाम); }

लैम्ब्डा का उपयोग करते हुए, उपरोक्त लूप के रूप में लिखा जा सकता है:

name.forEach (नाम -> System.out.println (नाम)); 

जावा 8 विधि संदर्भों के साथ, उपरोक्त को और भी स्पष्ट रूप से लिखा जा सकता है:

name.forEach (System.out:: println); 

मानचित्र पर लूपिंग

नक्शा मूल्यों की कुंजी का मानचित्रण है। मानचित्र पर लूपिंग में प्रत्येक (कुंजी, मान) मैपिंग पर लूपिंग शामिल है। तुलना करें कि आप इस साइटूटेशन के लिए लैम्ब्डा का उपयोग कैसे कर सकते हैं।

पहले एक नक्शा परिभाषित करें:

नक्शा नक्शा = नया हाशप <> (); map.put ("अटलांटा, जॉर्जिया", 110); map.put ("ऑस्टिन, टेक्सास", 115); map.put ("बाल्टीमोर, मैरीलैंड", 105); map.put ("बर्मिंघम, अलबामा", 99); map.put ("बोस्टन, मैसाचुसेट्स", 98); 

आप इस नक्शे को पारंपरिक तरीके से देख सकते हैं:

(मानचित्र के लिए) प्रवेश e: map.entrySet ()) {System.out.println (e.getKey () + "=>" + e.getValue ()); }

यहां बताया गया है कि आप लैम्बदास का उपयोग करके त्वरित और संक्षिप्त तरीके से कैसे कर सकते हैं:

map.forEach ((k, v) -> System.out.println (k + "=>" + v)); 

कार्यात्मक इंटरफेस

एक लंबोदर अभिव्यक्ति का वापसी प्रकार क्या है? दूसरे शब्दों में, किस प्रकार का है एक्स निम्नलिखित कथन में?

एक्स एक्स = ए -> ए + 1; 

एक लंबोदर अभिव्यक्ति का वापसी प्रकार एक है कार्यात्मक इंटरफ़ेस - एकल सार पद्धति वाला इंटरफ़ेस। आप एक संगत सार विधि के साथ एक अंतरफलक के लिए एक लैम्ब्डा अभिव्यक्ति प्रदान कर सकते हैं। नीचे कुछ उदाहरण।

मल्टी-थ्रेडेड टास्क बनाना

के लिए एक कार्य बनाने पर विचार करें एक अलग धागे में निष्पादन जावा में मल्टी-थ्रेडेड कोड लिखने के लिए 4 तरीकेइस लेख में, हम जावा में बहु-थ्रेडेड कोड लिखने के लिए कुछ विकल्पों की तुलना करते हैं, इसलिए आप अपने अगले जावा प्रोजेक्ट के लिए कौन से विकल्प का उपयोग कर सकते हैं, इसे बेहतर तरीके से पहचान सकते हैं। अधिक पढ़ें - आपको कार्य को एक के रूप में परिभाषित करना आवश्यक है runnable इंटरफ़ेस और कार्यान्वित करें Daud() तरीका। यहाँ runnable एक कार्यात्मक इंटरफ़ेस है।

वर्ग MyTask लागू करने योग्य {... सार्वजनिक शून्य रन () {// अपना कार्य यहां लागू करें System.out.println ("एक अलग थ्रेड में चल रहा है।"); }... }

तब आप इसका एक उदाहरण बना सकते हैं मेरा काम कक्षा और निष्पादन के एक नए सूत्र को शुरू करने के लिए इसका उपयोग करें।

MyTask कार्य = नया MyTask (); धागा धागा = नया धागा (कार्य); thread.start (); 

एक मेमने का उपयोग करना, एक बनाने की प्रक्रिया runnable बहुत आसान हो जाता है। उपरोक्त कार्य परिभाषा को इस प्रकार लिखा जा सकता है:

चल कार्य = () -> System.out.println ("अब एक अलग थ्रेड में चल रहा है।"); 

या और भी:

थ्रेड थ्रेड = नया थ्रेड () -> System.out.println ("अब एक अलग थ्रेड में चल रहा है।")); thread.start (); 

तुलना का उपयोग करना

तुलनित्र किसी दिए गए प्रकार की वस्तुओं की तुलना करने के लिए एक कार्यात्मक इंटरफ़ेस है। यह एकल सार पद्धति को परिभाषित करता है तुलना () जिसे एक लंबोदर अभिव्यक्ति का उपयोग करके परिभाषित किया जा सकता है।

यहाँ एक लंबोदर अभिव्यक्ति है a तुलनित्र स्ट्रिंग केस-असंवेदनशीलता की तुलना करने के लिए उपयोग किया जाता है।

तुलनित्र cmp = (x, y) -> x.compareToIgnoreCase (y); 

एक बार का एक उदाहरण है तुलनित्र कार्यात्मक इंटरफ़ेस बनाया गया है, इसे आवश्यकतानुसार पुनः उपयोग किया जा सकता है।

यहां, हम आरोही क्रम में तार की एक सूची को सॉर्ट करते हैं।

सूची नाम = Arrays.asList ("जो", "जैक", "जेम्स", "अल्बर्ट"); संग्रह.सोर्ट (नाम, सीपीएम); name.forEach (System.out:: println); // प्रिंट। अल्बर्ट। जैक। जेम्स। जो। 

ऊपर दी गई सूची को जगह में क्रमबद्ध किया गया है। अब हम इसका उपयोग करके खोज कर सकते हैं द्विआधारी खोज() विधि इस प्रकार है:

System.out.println ("खोज (जो):" + संग्रह.बिना खोज (नाम, "जो", cmp)); # प्रिंट। खोज (जो): 3। 

एक सूची से अधिकतम और न्यूनतम गणना करना भी लंबोदर का उपयोग करना आसान है।

कुछ डेटा को परिभाषित करें:

सूची temps = Arrays.asList (110, 115, 105, 99, 98, 54, 109, 84, 81, 66, 72, 135, 115, 75, 82, 90, 88); 

तुलनित्र को परिभाषित करने के लिए एक लैम्ब्डा अभिव्यक्ति का उपयोग करें:

तुलनित्र cmpTemp = (x, y) -> Integer.compare (x, y); 

और अधिकतम और न्यूनतम प्रिंट करें:

System.out.println ("मैक्स / मिन"); System.out.println (Collections.max (temps, cmpTemp) + "/" + कलेक्शन .min (temps, cmpTemp)); 

जीयूआई प्रोग्रामिंग में उपयोग करें

इवेंट हैंडलर को लागू करने के लिए GUI प्रोग्रामिंग में लैम्ब्डा एक्सप्रेशन भी बेहद उपयोगी हैं। यहां बटन क्लिक हैंडलर का उपयोग करने का एक उदाहरण है।

जेबटन बटन = नया जेबटन ("क्लिक मी"); button.addActionListener (e -> System.out.println ("बटन क्लिक किया गया!")); 

और यह जावा 8 में लैम्ब्डा का उपयोग करने पर एक त्वरित नज़र थी।

लैम्ब्डा ने जावा 8 के बाद से आपके जीवन को आसान बना दिया है? कृपया नीचे टिप्पणी में बताएं।