C# Programming

C# में Dictionary के साथ Hash Maps में महारथ

Spread the love

C# में सीधे “HashMap” नाम का कोई वर्ग उपलब्ध नहीं है, जैसा कि Java में है। हालाँकि, इसका Dictionary<TKey, TValue> वर्ग समान कार्यक्षमता प्रदान करता है और हैश मैप ऑपरेशन्स के लिए अनुशंसित तरीका है।

विषयसूची

हैश मैप के रूप में Dictionary<TKey, TValue> का उपयोग

Dictionary<TKey, TValue> एक कुंजी-मान संग्रह प्रदान करता है जिसमें सम्मिलन, हटाने और पुनर्प्राप्ति जैसे सामान्य संचालनों के लिए O(1) औसत समय जटिलता होती है। TKey कुंजी प्रकार निर्दिष्ट करता है, और TValue संबंधित मान प्रकार को परिभाषित करता है। आइए इसके उपयोग का पता लगाएँ:

डिक्शनरी बनाना और उसे आबाद करना:


// स्ट्रिंग्स को कुंजी के रूप में और पूर्णांकों को मान के रूप में संग्रहीत करने के लिए एक डिक्शनरी बनाएँ।
Dictionary<string, int> myDictionary = new Dictionary<string, int>();

// Add() का उपयोग करके कुंजी-मान जोड़े जोड़ें
myDictionary.Add("apple", 1);
myDictionary.Add("banana", 2);
myDictionary.Add("cherry", 3);

// या संग्रह इनिशियलाइज़र सिंटैक्स का उपयोग करें:
Dictionary<string, int> anotherDictionary = new Dictionary<string, int>()
{
    {"grape", 4},
    {"orange", 5}
};

मानों तक पहुँचना:

उनकी कुंजियों का उपयोग करके मान प्राप्त करें। TryGetValue() प्रत्यक्ष अनुक्रमण से अधिक सुरक्षित है, उन मामलों को संभालता है जहाँ कुंजी अनुपस्थित है:


int appleCount;
if (myDictionary.TryGetValue("apple", out appleCount))
{
    Console.WriteLine($"Apple count: {appleCount}"); // आउटपुट: Apple count: 1
}
else
{
    Console.WriteLine("Apple not found.");
}

// प्रत्यक्ष पहुँच (यदि कुंजी गुम है तो KeyNotFoundException फेंकता है)
try
{
    Console.WriteLine($"Banana count: {myDictionary["banana"]}"); // आउटपुट: Banana count: 2
}
catch (KeyNotFoundException)
{
    Console.WriteLine("Key not found.");
}

डिक्शनरी के माध्यम से पुनरावृति:


Console.WriteLine("Dictionary contents:");
foreach (KeyValuePair<string, int> kvp in myDictionary)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}

तत्वों को हटाना:


myDictionary.Remove("banana"); 

कुंजी के अस्तित्व की जाँच करना:


if (myDictionary.ContainsKey("cherry"))
{
    Console.WriteLine("Cherry exists.");
}

उन्नत उपयोग और विचार

थ्रेड सुरक्षा की आवश्यकता वाले परिदृश्यों के लिए, ConcurrentDictionary<TKey, TValue> पर विचार करें। कुंजियों का चयन करते समय, सुनिश्चित करें कि वे GetHashCode() और Equals() को सही ढंग से लागू करते हैं ताकि टकराव से बचा जा सके और हैश मैप दक्षता बनाए रखी जा सके। इष्टतम प्रदर्शन के लिए इन पहलुओं को समझना महत्वपूर्ण है।

निष्कर्ष

C# में Dictionary<TKey, TValue> HashMap का प्रभावी समकक्ष है, जो कुंजी-मान संग्रहण के लिए उत्कृष्ट प्रदर्शन प्रदान करता है। इसकी बहुमुखी प्रतिभा, थ्रेड-सुरक्षित विकल्पों की उपलब्धता के साथ मिलकर, इसे विविध C# अनुप्रयोगों के लिए एक मौलिक डेटा संरचना बनाती है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *