কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ কালেকশন ফ্যাক্টরি মেথডের শর্তাবলী (Conditions for Collection Factory Methods)


জাভা ৯-এ ফ্যাক্টরি মেথড গুলো Collections API-তে যোগ করা হয়েছে। List.of(), Set.of(), Map.of(), এবং Map.ofEntries() হলো স্ট্যাটিক ফ্যাক্টরি মেথড যারা ইমিউটেবল (immutable) কালেকশন অবজেক্ট তৈরি করার সুবিধাজনক পদ্ধতি প্রদান করে কোডের লাইন কমিয়ে।

নিচে কালেকশন ফ্যাক্টরি মেথডের শর্তাবলী (conditions) দেওয়া হলো:

  • স্ট্রাকচারালি ইমিউটেবল (structurally immutable)।
  • নাল (null) এলিমেন্ট বা নাল কি (null keys) অনুমতি দেয় না।
  • সিরিয়ালাইজেবল (serializable) যদি সব এলিমেন্ট সিরিয়ালাইজেবল হয়।
  • ক্রিয়েশন টাইমে ডুপ্লিকেট এলিমেন্ট/কি রিজেক্ট করে।
  • সেট এলিমেন্টের ইটেরেশন অর্ডার अनস্পেসিফাইড (unspecified) এবং পরিবর্তনশীল।
  • ভ্যালু-ভিত্তিক (value-based)। ফ্যাক্টরিগুলো নতুন ইনস্ট্যান্স তৈরি করতে পারে বা বিদ্যমানগুলো পুনরাবৃত্তি করতে পারে। তাই এই ইনস্ট্যান্সের ওপর আইডেন্টিটি-সেনসিটিভ অপারেশন, আইডেন্টিটি হ্যাশ কোড, এবং সিঙ্ক্রোনাইজেশন অনবিশ্বস্ত এবং এড়ানো উচিত।

সিনট্যাক্স

List.of(elements...) 
Set.of(elements...) 
Map.of(k1, v1, k2, v2)

উদাহরণ

import java.util.Set;

public class CollectionsTest {
    public static void main(String args[]) {
        System.out.println("জাভা ৯ একটি স্ট্যাটিক ফ্যাক্টরি মেথড পরিচয় করিয়েছে: of()");
        Set immutableCountrySet = Set.of("India", "England", "South Africa", "Australia");
        System.out.println(immutableCountrySet);
        
        try {
            immutableCountrySet.add("Newzealand");
        } catch(Exception e) {
            System.out.println("Caught Exception, Adding Entry to Immutable Collection!");
        }
    }
}

আউটপুট

জাভা ৯ একটি স্ট্যাটিক ফ্যাক্টরি মেথড পরিচয় করিয়েছে: of() 
[South Africa, India, Australia, England] 
Caught Exception, Adding Entry to Immutable Collection!

  1. জাভা ৯-এ @Deprecated অ্যানোটেশনের উন্নতি

  2. জাভাতে ক্লাস/স্ট্যাটিক মেথড কী?

  3. জাভাতে JTextPane এবং JEditorPane-এর মধ্যে পার্থক্য কী?

  4. জাভাতে compareTo() এবং compare() মেথডের পার্থক্য কী?