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

C#-তে নির্দিষ্ট প্রাথমিক আকারের HybridDictionary তৈরি করা

HybridDictionary ক্লাসের কনস্ট্রাক্টর HybridDictionary(int initialSize) ব্যবহার করে একটি নির্দিষ্ট প্রাথমিক ক্যাপাসিটির সাথে হাইব্রিড ডিকশনারি তৈরি করা যায়। এটি পারফরম্যান্স অপ্টিমাইজেশনের জন্য ব্যবহৃত হয় যখন প্রায়নি_ELEMENT_COUNT জানা থাকে।

উদাহরণ ১: প্রাথমিক আকার ৫ দিয়ে HybridDictionary তৈরি

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        // প্রাথমিক আকার ৫ দিয়ে তৈরি
        HybridDictionary dict = new HybridDictionary(5);
        dict.Add("A", "AB");
        dict.Add("B", "BC");
        dict.Add("C", "DE");
        dict.Add("D", "FG");
        dict.Add("E", "HI");

        Console.WriteLine("কী/ভ্যালু জোড়া...");
        foreach (DictionaryEntry d in dict) {
            Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
        }
    }
}

আউটপুট

কী/ভ্যালু জোড়া...
Key = A, Value = AB
Key = B, Value = BC
Key = C, Value = DE
Key = D, Value = FG
Key = E, Value = HI

উদাহরণ ২: প্রাথমিক আকার ১০ দিয়ে HybridDictionary তৈরি

using System;
using System.Collections;
using System.Collections.Specialized;

public class Demo {
    public static void Main() {
        // প্রাথমিক আকার ১০ দিয়ে তৈরি
        HybridDictionary dict = new HybridDictionary(10);
        dict.Add("1", 100);
        dict.Add("2", 200);
        dict.Add("3", 300);
        dict.Add("4", 400);
        dict.Add("5", 500);
        dict.Add("6", 600);
        dict.Add("7", 700);
        dict.Add("8", 800);
        dict.Add("9", 900);
        dict.Add("10", 1000);

        Console.WriteLine("কী/ভ্যালু জোড়া...");
        foreach (DictionaryEntry d in dict) {
            Console.WriteLine("Key = " + d.Key + ", Value = " + d.Value);
        }
    }
}

আউটপুট

কী/ভ্যালু জোড়া...
Key = 10, Value = 1000
Key = 1, Value = 100
Key = 2, Value = 200
Key = 3, Value = 300
Key = 4, Value = 400
Key = 5, Value = 500
Key = 6, Value = 600
Key = 7, Value = 700
Key = 8, Value = 800
Key = 9, Value = 900

HybridDictionary কনস্ট্রাক্টর ও ইনিশিয়াল সাইজ

কনস্ট্রাক্টরবিবরণ
HybridDictionary()ডিফল্ট কনস্ট্রাক্টর, প্রাথমিক আকার ০ (ListDictionary মোডে শুরু)
HybridDictionary(int initialSize)নির্দিষ্ট প্রাথমিক আকারে তৈরি (এই আর্টিকেলের বিষয়)
HybridDictionary(int initialSize, bool caseInsensitive)প্রাথমিক আকার + কেস-সেনসিটিভিটি কন্ট্রোল
HybridDictionary(IDictionary d)অন্য ডিকশনারি থেকে কপি করে তৈরি
HybridDictionary(IDictionary d, bool caseInsensitive)কপি + কেস-সেনসিটিভিটি

HybridDictionary-র হাইব্রিড আচরণ

  • ≤ ৯ উপাদান: আন্ডারলাইংলে ListDictionary (সিঙ্গলি-লিঙ্কড লিস্ট) ব্যবহার করে - কম মেমরি, ছোট ডেটার জন্য ফাস্ট।
  • > ৯ উপাদান: অটোমেটিক্যালি Hashtable-এ কনভার্ট হয় - বড় ডেটার জন্য ফাস্ট লুকআপ।
  • initialSize >= 10: সরাসরি Hashtable মোডে শুরু হয় (ListDictionary ফেজ বাইপাস)।
  • initialSize < 10: ListDictionary মোডে শুরু হয়, ১০টি পূর্ণ হলে Hashtable-এ স্যুইচ।

পারফরম্যান্স টিপস

// ভালো: প্রায়নি আকার জানলে ইনিশিয়াল সাইজ দিন
var dict = new HybridDictionary(100);  // ১০০টি উপাদান আশা করলে

// খারাপ: ডিফল্ট কনস্ট্রাক্টর (রিসাইজ ওভারহেড)
var dict = new HybridDictionary();  // ০ থেকে শুরু, রিসাইজ বারবার

// স্ট্রিং কী-তে কেস-ইনসেনসিটিভ (ডিফল্ট true)
var dictCI = new HybridDictionary(10, true);   // Case-insensitive (ডিফল্ট)
var dictCS = new HybridDictionary(10, false);  // Case-sensitive

নোট: আউটপুট ২-এ ক্রম

দ্বিতীয় উদাহরণের আউটপুটে কীগুলোর ক্রম 10, 1, 2, 3... দেখা যাচ্ছে। কারণ initialSize=10 হলে সরাসরি Hashtable মোডে শুরু হয়, যেখানে কীগুলোর ক্রম অনির্দিষ্ট (হ্যাশ-বেসড)। ইনসারশন অর্ডার বজায় রাখতে OrderedDictionary ব্যবহার করুন।

আধুনিক বিকল্প

// জেনেরিক Dictionary - টাইপ সেফ, ফাস্ট
var dict = new Dictionary<string, int>(100);  //.initial capacity

// অর্ডার্ড ডিকশনারি (NET Core 3.0+ / .NET 5+ নেই BCL-এ, 써드-পার্টি বা কাস্টম)
// সর্টেড ডিকশনারি
var sortedDict = new SortedDictionary<string, int>();

সুপারিশ: নতুন কোডে Dictionary<TKey, TValue> (অর্ডার নয়) বা SortedDictionary<TKey, TValue> (সর্টেড) ব্যবহার করুন। HybridDictionary লিগ্যাসি নন-জেনেরিক ক্লাস।

  1. জাভাস্ক্রিপ্টে new কীওয়ার্ড দিয়ে অ্যারে তৈরির পদ্ধতি

  2. জাভাস্ক্রিপ্টে push() ব্যবহার করে asoshiative অ্যারে তৈরি করা

  3. CSS দিয়ে em ইউনিটে ফন্ট সাইজ সেট করুন

  4. CSS-এ পিক্সেল দিয়ে ফন্ট সাইজ সেট করা