একজন অভিজ্ঞ জাভা বিকাশকারী এবং ফ্যাশনের একজন গুণী হিসাবে, আমাদের প্রায়শই জটিল সমস্যার অনন্য সমাধান তৈরি করার দায়িত্ব দেওয়া হয়। এই ধরনের একটি দ্বিধা হল জাভাতে একটি গণনা (Enum) থেকে এলোমেলো নির্বাচন। আপনি হয়ত ইতিমধ্যেই অনুমান করেছেন যে জাভাতে এমন কোনও অন্তর্নির্মিত পদ্ধতি নেই যা সরাসরি এই ফাংশনটি সরবরাহ করে - পাইথনের মতো ভাষায় একটি সাধারণ বৈশিষ্ট্য। তা সত্ত্বেও, জাভা আমাদের নিজস্ব সমাধান ঘোরানোর জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করে।
গণনা, অনেক প্রোগ্রামের অসাং হিরো, মূলত একটি প্রকার যার ফিল্ডে একটি নির্দিষ্ট ধ্রুবক সেট থাকে। প্রায়শই আমরা এই সেট থেকে একটি এলোমেলো মান নির্বাচন করতে চাই। এই নিবন্ধটির উদ্দেশ্য এই প্রক্রিয়াটি ব্যাখ্যা করা।
জাভাতে র্যান্ডম এনাম তৈরি করা হচ্ছে
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]; }
আসুন এই 'র্যান্ডমএনাম' পদ্ধতিটি ভেঙে ফেলি। প্রথমত, আমরা এই পদ্ধতিটিকে সাধারণভাবে টাইপ করার জন্য সংজ্ঞায়িত করি – এর মানে এটি যেকোন ধরনের enums গ্রহণ করতে পারে। 'র্যান্ডম' হল একটি শ্রেণী যা সিউডোর্যান্ডম সংখ্যার একটি স্ট্রীম তৈরি করে, যা আমরা এখানে নির্বাচনের জন্য একটি এলোমেলো সূচক নির্ধারণ করতে ব্যবহার করি। এই সূচক 'x' হল একটি int, যার সর্বোচ্চ মান আমাদের গণনার আকার বা আরও সঠিকভাবে, আমাদের পাস করা 'ক্লাজ' (ক্লাস অবজেক্ট) এর enum ধ্রুবকের অ্যারের দৈর্ঘ্য দ্বারা সীমাবদ্ধ।
'x' তৈরি করার পর, আমরা আমাদের এলোমেলোভাবে জেনারেট করা 'x' দিয়ে অ্যারে ইন্ডেক্সিং ব্যবহার করে একটি র্যান্ডম Enum ধ্রুবক ফেরত দিই। এই পদ্ধতির সৌন্দর্য হল এর নমনীয়তা - এটি যেকোনো গণনার সাথে কাজ করে!
জাভাতে Enums বোঝা
জাভাতে Enum হল একটি ডেটা টাইপ যাতে একটি নির্দিষ্ট ধ্রুবক সেট থাকে। Enum কনস্ট্রাক্টর সবসময় ব্যক্তিগত বা ডিফল্ট হয়, এবং আপনি সাধারণত Enums ব্যবহার করেন যখন আপনার কাছে এমন মান থাকে যা আপনি জানেন যে পরিবর্তন হবে না, যেমন সপ্তাহের দিনগুলি, দিকনির্দেশ (উত্তর, দক্ষিণ, পূর্ব, পশ্চিম) ইত্যাদি।
public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }
Enum প্রকারগুলি আমাদের ধারণার চেয়ে অনেক বেশি শক্তিশালী। জাভাতে, enum টাইপ হল প্রথাগত ডেটা টাইপের একটি শক্তিশালী বৈকল্পিক যা আমাদেরকে একটি নির্দিষ্ট পদ্ধতির জন্য একটি রিটার্ন টাইপ সংজ্ঞায়িত করতে দেয়, সেই পদ্ধতির একটি প্যারামিটার বা এমনকি একটি ক্লাস অবজেক্ট হিসাবেও।
আমাদের জাভা পদ্ধতির ব্যবহার এবং নমনীয়তা
'randomEnum' পদ্ধতি যে কোনো জাভা প্রকল্পের জন্য একটি সহজ উপযোগীতা হিসেবে কাজ করে। এর শক্তি তার নমনীয়তার মধ্যে নিহিত - আমরা এই পদ্ধতিটিকে যেকোন এনাম টাইপের সাথে কল করতে পারি এবং এটি এলোমেলোভাবে সেই গণনার একটি ধ্রুবক ফিরিয়ে দেবে।
এটি উল্লেখ করা উল্লেখযোগ্য যে কম্পিউটার-উত্পাদিত এলোমেলোতা নিজেই একটি আকর্ষণীয় বিষয়, এতে অত্যন্ত জটিল অ্যালগরিদম জড়িত এবং সিমুলেশন এবং জটিল ডেটা সেট তৈরিতে এটি গুরুত্বপূর্ণ। আমাদের 'র্যান্ডমএনাম' পদ্ধতি হল একটি ছোট কিন্তু শক্তিশালী উদাহরণ যে জাভা কীভাবে তার বিশাল প্রোগ্রামিং টুলবক্সে ছদ্ম-অনুকূলতা লাভ করে।
ফ্যাশন পরিভাষায়, আপনার জাভা পোশাকের ছোট্ট কালো পোশাক হিসাবে আমাদের 'র্যান্ডমএনাম' পদ্ধতিটিকে ভাবুন। ঠিক যেমন ছোট কালো পোষাকটি একাধিক উদ্দেশ্যে কাজ করে এবং অনুষ্ঠানের উপর নির্ভর করে উপরে বা নিচে সাজানো যেতে পারে, আমাদের 'র্যান্ডম এনাম' পদ্ধতিটি মানিয়ে নেওয়া যায়, যে কোনও জাভা প্রকল্পে নির্বিঘ্নে ফিট করে যেখানে পরিস্থিতি বা এনাম প্রকার নির্বিশেষে আপনাকে র্যান্ডম এনাম তৈরি করতে হবে। .