एक अनुभवी Java विकसक आणि फॅशनचा जाणकार म्हणून, आम्हाला बर्याचदा जटिल समस्यांवर अद्वितीय उपाय तयार करण्याचे काम दिले जाते. अशीच एक संदिग्धता म्हणजे जावामधील गणनेतून (एनम) यादृच्छिक निवड. तुम्ही कदाचित आधीच अंदाज लावला असेल की Java मध्ये कोणतीही अंगभूत पद्धत नाही जी हे कार्य थेट पुरवते - पायथन सारख्या भाषांमध्ये एक सामान्य वैशिष्ट्य. असे असूनही, Java आम्हाला आमचे स्वतःचे समाधान फिरवण्यासाठी आवश्यक साधने प्रदान करते.
गणने, अनेक प्रोग्राम्सचे न ऐकलेले नायक, मूलत: एक प्रकार आहेत ज्यांच्या फील्डमध्ये स्थिरांकांचा एक निश्चित संच असतो. बर्याचदा आम्ही या संचामधून एक यादृच्छिक मूल्य निवडू इच्छितो. या लेखाचा उद्देश ही प्रक्रिया स्पष्ट करणे आहे.
Java मध्ये यादृच्छिक एनम तयार करणे
public static <T extends Enum<?>> T randomEnum(Class<T> clazz){ Random random = new Random(); int x = random.nextInt(clazz.getEnumConstants().length); return clazz.getEnumConstants()[x]; }
ही ‘randomEnum’ पद्धत खंडित करू. प्रथम, आम्ही ही पद्धत सामान्यपणे टाइप करण्यासाठी परिभाषित करतो - याचा अर्थ ती कोणत्याही प्रकारच्या एनम्स स्वीकारू शकते. 'यादृच्छिक' हा एक वर्ग आहे जो छद्म यादृच्छिक संख्यांचा प्रवाह तयार करतो, ज्याचा वापर आम्ही येथे निवडीसाठी यादृच्छिक अनुक्रमणिका निर्धारित करण्यासाठी करतो. हा निर्देशांक 'x' एक इंट आहे, ज्याचे कमाल मूल्य आमच्या गणनेच्या आकाराने किंवा अधिक अचूकपणे, आमच्या पास केलेल्या 'क्लॅझ' (क्लास ऑब्जेक्ट) च्या enum स्थिरांकांच्या अॅरेच्या लांबीने मर्यादित आहे.
'x' तयार केल्यानंतर, आम्ही आमच्या यादृच्छिकपणे व्युत्पन्न केलेल्या 'x' सह अॅरे इंडेक्सिंग वापरून यादृच्छिक एनम स्थिरांक परत करतो. या पद्धतीचे सौंदर्य म्हणजे त्याची लवचिकता – ती कोणत्याही गणनेसह कार्य करते!
जावा मधील एनम्स समजून घेणे
Java मधील Enum हा डेटा प्रकार आहे ज्यामध्ये स्थिरांकांचा निश्चित संच असतो. Enum कन्स्ट्रक्टर हे नेहमी खाजगी किंवा डीफॉल्ट असतात आणि तुम्ही सामान्यत: Enums वापरता जेव्हा तुम्हाला माहित असलेली मूल्ये बदलणार नाहीत, जसे की आठवड्यातील दिवस, दिशानिर्देश (उत्तर, दक्षिण, पूर्व, पश्चिम) आणि असेच.
public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
एनमचे प्रकार आपल्या विचारापेक्षा खूप शक्तिशाली आहेत. Java मध्ये, enum प्रकार हा पारंपारिक डेटा प्रकाराचा एक मजबूत प्रकार आहे जो आम्हाला विशिष्ट पद्धतीसाठी, त्या पद्धतीचे पॅरामीटर म्हणून किंवा अगदी क्लास ऑब्जेक्ट म्हणून रिटर्न प्रकार परिभाषित करण्यास अनुमती देतो.
आमच्या Java पद्धतीचा वापर आणि लवचिकता
'randomEnum' पद्धत कोणत्याही Java प्रकल्पासाठी सुलभ उपयुक्तता म्हणून काम करते. त्याची शक्ती त्याच्या लवचिकतेमध्ये आहे - आपण या पद्धतीला कोणत्याही एनम प्रकारासह कॉल करू शकतो आणि ती यादृच्छिकपणे त्या गणनेचा स्थिरांक परत करेल.
हे नमूद करणे उल्लेखनीय आहे की संगणक-व्युत्पन्न यादृच्छिकता हा स्वतःच एक आकर्षक विषय आहे, ज्यामध्ये अत्यंत जटिल अल्गोरिदमचा समावेश आहे आणि सिम्युलेशन आणि जटिल डेटा संच तयार करण्यात महत्त्वपूर्ण आहे. आमची 'randomEnum' पद्धत Java त्याच्या विशाल प्रोग्रामिंग टूलबॉक्समध्ये स्यूडोरॅंडमनेसचा कसा फायदा घेते याचे एक लहान परंतु शक्तिशाली उदाहरण आहे.
फॅशनच्या दृष्टीने, आमच्या ‘रँडमएनम’ पद्धतीचा तुमच्या जावा वॉर्डरोबचा छोटा काळा ड्रेस म्हणून विचार करा. ज्याप्रमाणे लहान काळा ड्रेस अनेक उद्देशांसाठी काम करतो आणि प्रसंगानुसार वर किंवा खाली ड्रेस करता येतो, त्याचप्रमाणे आमची 'यादृच्छिक' पद्धत जुळवून घेण्यायोग्य आहे, कोणत्याही जावा प्रोजेक्टमध्ये अखंडपणे बसते जिथे तुम्हाला यादृच्छिक एनम्स व्युत्पन्न करावे लागतील, परिस्थिती किंवा एनम प्रकार काहीही असो. .