EnumSet এবং EnumMap এর ধারণা এবং ব্যবহার

EnumSet এবং EnumMap - জাভা ইউটিল.প্যাকেজ (Java.util Package) - Java Technologies

290

EnumSet এবং EnumMap হল Java.util প্যাকেজের দুটি বিশেষ ডেটা স্ট্রাকচার, যা enum টাইপের জন্য অপ্টিমাইজড। EnumSet এবং EnumMap উভয়ই enum টাইপের উপাদানগুলি সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহৃত হয়, এবং তারা তাদের অপটিমাইজড কার্যকারিতার জন্য বেশ দ্রুত।

1. EnumSet

EnumSet হল Set ইন্টারফেসের একটি বিশেষ বাস্তবায়ন যা enum টাইপের উপাদানগুলি ধারণ করার জন্য ব্যবহৃত হয়। এটি একমাত্র সেটিং, যা enum এর জন্য অপ্টিমাইজড এবং এটি null উপাদান সমর্থন করে না।

EnumSet এর বৈশিষ্ট্য:

  • Optimized for Enum Types: EnumSet শুধুমাত্র enum টাইপের জন্য ব্যবহৃত হয় এবং এটি memory এবং performance এর দিক থেকে অন্যান্য সাধারণ Set ইমপ্লিমেন্টেশনের চেয়ে অনেক দ্রুত।
  • No Null Elements: EnumSetnull উপাদান থাকতে পারে না।
  • Performance: EnumSet এর পারফরম্যান্স সাধারণ HashSet বা TreeSet এর তুলনায় অনেক বেশি কার্যকরী, কারণ এটি bit vectors ব্যবহার করে।

EnumSet এর উদাহরণ:

import java.util.EnumSet;

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

public class EnumSetExample {
    public static void main(String[] args) {
        // EnumSet ব্যবহার করে কিছু নির্দিষ্ট দিন সংগ্রহ করা
        EnumSet<Day> weekend = EnumSet.of(Day.SATURDAY, Day.SUNDAY);

        // EnumSet প্রিন্ট করা
        System.out.println("Weekend days: " + weekend);

        // EnumSet থেকে একটি দিন বাদ দেয়া
        weekend.remove(Day.SUNDAY);
        System.out.println("Weekend days after removal: " + weekend);

        // EnumSet এ সব দিন অ্যাড করা
        EnumSet<Day> allDays = EnumSet.allOf(Day.class);
        System.out.println("All days: " + allDays);
    }
}

Output:

Weekend days: [SATURDAY, SUNDAY]
Weekend days after removal: [SATURDAY]
All days: [MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY]

ব্যাখ্যা:

  • EnumSet.of() মেথড দিয়ে কিছু নির্দিষ্ট enum উপাদান নির্বাচন করা হয়েছে।
  • remove() মেথড দিয়ে একটি দিন বাদ দেওয়া হয়েছে।
  • EnumSet.allOf() মেথড দিয়ে সমস্ত দিনের EnumSet তৈরি করা হয়েছে।

2. EnumMap

EnumMap হল Map ইন্টারফেসের একটি বিশেষ বাস্তবায়ন, যা enum টাইপের key গুলি সংরক্ষণ করতে ব্যবহৃত হয়। এটি শুধুমাত্র enum টাইপের key গুলির জন্য ব্যবহৃত হয় এবং এটি null key সমর্থন করে না, তবে null value সমর্থন করে। EnumMap অত্যন্ত দ্রুত এবং enum টাইপের উপাদানগুলির জন্য অপ্টিমাইজড।

EnumMap এর বৈশিষ্ট্য:

  • Key must be an enum type: EnumMapkey হিসেবে শুধুমাত্র enum টাইপ ব্যবহার করা যেতে পারে।
  • Optimized for enum keys: এটি enum টিপের জন্য দ্রুততম map ইমপ্লিমেন্টেশন।
  • No Null Keys: null key সমর্থিত নয়, তবে null value থাকতে পারে।

EnumMap এর উদাহরণ:

import java.util.EnumMap;

enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

public class EnumMapExample {
    public static void main(String[] args) {
        // EnumMap তৈরি করা
        EnumMap<Day, String> workStatus = new EnumMap<>(Day.class);

        // EnumMap এ মান যোগ করা
        workStatus.put(Day.MONDAY, "Work");
        workStatus.put(Day.SATURDAY, "Rest");
        workStatus.put(Day.SUNDAY, "Rest");

        // EnumMap প্রিন্ট করা
        System.out.println("Work Status: " + workStatus);

        // EnumMap থেকে মান সংগ্রহ করা
        String status = workStatus.get(Day.MONDAY);
        System.out.println("Status on Monday: " + status);
    }
}

Output:

Work Status: {MONDAY=Work, SATURDAY=Rest, SUNDAY=Rest}
Status on Monday: Work

ব্যাখ্যা:

  • EnumMap<Day, String> একটি enum টিপ Day এর key এবং String এর value সহ একটি মানচিত্র তৈরি করা হয়েছে।
  • put() মেথডের মাধ্যমে Day অনুযায়ী String মান যুক্ত করা হয়েছে।
  • get() মেথড ব্যবহার করে সোমবারের কাজের অবস্থা নেওয়া হয়েছে।

EnumSet এবং EnumMap এর মধ্যে পার্থক্য

FeatureEnumSetEnumMap
Data TypeSet (Unique elements)Map (Key-Value pairs)
Key/Value TypeOnly enum types (no duplicates)Keys must be enum types, values can be any type
Null SupportDoes not support null elementsDoes not support null keys, but allows null values
PerformanceOptimized for storing enums (faster access)Optimized for using enum keys (faster than HashMap)
Use CaseWhen you need a collection of unique enum elementsWhen you need a map with enum keys and any values
Memory UsageUses bit-vector for storage, memory-efficientMemory efficient for enum keys, but needs extra memory for values

Use Cases:

  • EnumSet: যখন আপনার enum টাইপের উপাদানগুলির একটি সংগ্রহ তৈরি করতে হয় এবং সেটি ইউনিক (ডুপ্লিকেট মুক্ত) হতে হবে।
    • উদাহরণ: সপ্তাহের দিনগুলোর সেট তৈরি করা।
  • EnumMap: যখন enum টাইপের key সহ একটি মানচিত্র তৈরি করতে হয়, যেখানে প্রতিটি key এর জন্য একটি নির্দিষ্ট মান (value) সংরক্ষণ করতে হবে।
    • উদাহরণ: কর্মদিবসের জন্য work status (যেমন, "Work" বা "Rest") সংরক্ষণ করা।

EnumSet এবং EnumMap উভয়ই enum টাইপের জন্য দ্রুত এবং কার্যকরী ডেটা স্ট্রাকচার সরবরাহ করে। EnumSet set ধরনের ডেটা সংগ্রহে ব্যবহৃত হয় এবং শুধুমাত্র enum উপাদান গুলি সংরক্ষণ করে, যেখানে EnumMap key-value জোড়া সংরক্ষণ করার জন্য ব্যবহৃত হয় এবং শুধুমাত্র enum টাইপের key এর সাথে মান সংরক্ষণ করে। এগুলি enum টাইপের ডেটা ম্যানিপুলেশনের জন্য অত্যন্ত কার্যকরী এবং অপ্টিমাইজড।

Content added By
Promotion

Are you sure to start over?

Loading...