रिड्यूस सम ही एक सामान्य समस्या आहे ज्याचा सामना अनेक डेव्हलपर आणि प्रोग्रामिंग उत्साही लोकांना होतो. त्यासाठी प्रोग्रामिंग संकल्पनांची मूलभूत समज आवश्यक आहे. जरी Java या समस्येचे निराकरण करण्यासाठी विविध पद्धती ऑफर करते, तरीही काहींसाठी ते गोंधळात टाकणारे कार्य असल्याचे सिद्ध होऊ शकते. या लेखात, आम्ही जावामधील रिड्यूस सम समस्येवर सर्वात प्रभावी उपाय शोधू, कोडच्या प्रत्येक भागाचे चरण-दर-चरण स्पष्टीकरण देऊ, ज्यामुळे ते अगदी नवशिक्यांसाठीही सहज समजू शकेल.
सम समस्या कमी करा
संख्यात्मक प्रवाहातील संख्यांची बेरीज करण्यासाठी कमी सम समस्या मूलत: उकळते. समस्येमध्ये भिन्न भिन्नता असू शकतात. हे अॅरेचे घटक, LinkedList चे घटक किंवा 'stream.reduce()` फंक्शन वापरणाऱ्या मल्टी-थ्रेड वातावरणातील स्ट्रीमच्या घटकांची बेरीज असू शकते. हे लॅम्बडा अभिव्यक्ती आणि कार्यात्मक इंटरफेस वापरते, जे Java 8 आणि त्यावरील आवश्यक वैशिष्ट्ये आहेत.
जावा सोल्यूशन
समस्या सहजपणे हाताळण्यासाठी आणि निराकरण करण्यासाठी Java लायब्ररी आणि कार्ये प्रदान करते. आम्ही स्ट्रीम API वापरणार आहोत जो Java 8 मध्ये सादर केला गेला होता. विशेषतः, `reduce()` पद्धत जी स्ट्रीमचे घटक एकत्र करून एकच सारांश परिणाम देते.
असे करण्यासाठी येथे नमुना Java कोड आहे.
public int sumOfArray(Integer[] numbers) { return Arrays.stream(numbers) .reduce(0, Integer::sum); }
संहितेचे चरण-दर-चरण स्पष्टीकरण
वरील कोड अशा पद्धतीचे प्रतिनिधित्व करतो जो युक्तिवाद म्हणून पूर्णांकांचा अॅरे घेतो आणि या पूर्णांकांची बेरीज देतो.
- प्रथम, `Arrays.stream(numbers)` अॅरेला स्ट्रीममध्ये रूपांतरित करते.
- त्यानंतर या प्रवाहावर `reduce()` पद्धत कॉल केली जाते. ही पद्धत दोन पॅरामीटर्स घेते: बेरीजचे प्रारंभिक मूल्य आणि बेरीज मोजण्यासाठी लागू करण्याची पद्धत.
- या प्रकरणात प्रारंभिक मूल्य '0' म्हणून सेट केले आहे आणि वापरलेली पद्धत आहे `Integer::sum`. `Integer::sum` हा पूर्णांक वर्गातील स्थिर पद्धती `sum` चा संदर्भ आहे. ही पद्धत त्याच्या युक्तिवादांची बेरीज देते. हे कमी करण्याच्या पद्धतीमध्ये पद्धत संदर्भ म्हणून पास केले जात आहे.
- `reduce()` फंक्शन नंतर स्ट्रीममधील प्रत्येक घटकावर बेरीज ऑपरेशन करते आणि बेरीज नंतर फंक्शनचा परिणाम म्हणून परत केली जाते.
Java लायब्ररी आणि तत्सम कार्ये
Java लायब्ररींची विस्तृत श्रेणी ऑफर करते जी तुम्हाला स्ट्रीमवर हाताळण्यात आणि ऑपरेट करण्यात मदत करू शकते. स्ट्रीमवर कोणते ऑपरेशन करणे आवश्यक आहे यावर आधारित `कमी` करण्यासाठी समान कार्यांमध्ये `संकलन`, `गणना`, `जुळण्या`, `शोधा`, `पुनरावृत्ती` यांचा समावेश होतो.
या उदाहरणाद्वारे, आम्ही हे पाहण्यास सक्षम आहोत की Java जटिल समस्यांचे निराकरण करण्यासाठी शक्तिशाली आणि लवचिक साधने प्रदान करते, अगदी कमी रकमेच्या समस्येसारख्या. हे भाषेच्या अष्टपैलुत्वाचा आणि दृढतेचा दाखला आहे.