Hashtable.Add() मेथड निर्दिष्ट कुंजी और मान के साथ एंट्री जोड़ता है। Hashtable एक नॉन-जेनेरिक की-वैल्यू संग्रह है जो कुंजियों के हैश कोड के आधार पर तत्वों को व्यवस्थित करता है।
उदाहरण 1: प्रारंभिक क्षमता के साथ Hashtable बनाना और तत्व जोड़ना
using System;
using System.Collections;
public class Demo {
public static void Main() {
// प्रारंभिक क्षमता 10
Hashtable hash = new Hashtable(10);
hash.Add("1", "A");
hash.Add("2", "B");
hash.Add("3", "C");
hash.Add("4", "D");
hash.Add("5", "E");
hash.Add("6", "F");
hash.Add("7", "G");
hash.Add("8", "H");
hash.Add("9", "I");
hash.Add("10", "J");
Console.WriteLine("Hashtable की और वैल्यू पेयर्स...");
foreach (DictionaryEntry entry in hash) {
Console.WriteLine("{0} and {1}", entry.Key, entry.Value);
}
Console.WriteLine("\nHashtable में एंट्रीज़ की संख्या = " + hash.Count);
// एक और तत्व जोड़ें (क्षमता से अधिक)
hash.Add("11", "K");
Console.WriteLine("\nHashtable की और वैल्यू पेयर्स (अपडेटेड)...");
foreach (DictionaryEntry entry in hash) {
Console.WriteLine("{0} and {1}", entry.Key, entry.Value);
}
Console.WriteLine("अपडेटेड संख्या = " + hash.Count);
}
}
आउटपुट
Hashtable की और वैल्यू पेयर्स...
10 and J
1 and A
2 and B
3 and C
4 and D
5 and E
6 and F
7 and G
8 and H
9 and I
Hashtable में एंट्रीज़ की संख्या = 10
Hashtable की और वैल्यू पेयर्स (अपडेटेड)...
10 and J
1 and A
2 and B
3 and C
4 and D
5 and E
6 and F
7 and G
8 and H
9 and I
11 and K
अपडेटेड संख्या = 11
उदाहरण 2: एन्यूमरेटर से इटरेशन
using System;
using System.Collections;
public class Demo {
public static void Main() {
Hashtable hash = new Hashtable(10);
hash.Add("1", "SUV");
hash.Add("2", "Electric Cars");
hash.Add("3", "AUV");
hash.Add("4", "Utility Vehicle");
hash.Add("5", "Compact Car");
hash.Add("6", "Sedan");
hash.Add("7", "Crossover");
Console.WriteLine("एन्यूमरेटर से Hashtable इटरेशन...");
IDictionaryEnumerator enumerator = hash.GetEnumerator();
while (enumerator.MoveNext()) {
Console.WriteLine("Key = " + enumerator.Key + ", Value = " + enumerator.Value);
}
}
}
आउटपुट
एन्यूमरेटर से Hashtable इटरेशन...
Key = 1, Value = SUV
Key = 2, Value = Electric Cars
Key = 3, Value = AUV
Key = 4, Value = Utility Vehicle
Key = 5, Value = Compact Car
Key = 6, Value = Sedan
Key = 7, Value = Crossover
महत्वपूर्ण विशेषताएं
- नॉन-जेनेरिक: कुंजी और मान दोनों
objectप्रकार के होते हैं। - कुंजी अद्वितीयता: डुप्लिकेट कुंजियों की अनुमति नहीं -
ArgumentExceptionफेंका जाता है। - नल कुंजी: अनुमति नहीं -
ArgumentNullExceptionफेंका जाता है। - नल मान: अनुमति है।
- क्रम: अनिर्धारित (हैश-आधारित)।
- क्षमता: स्वतः बढ़ती है; प्रारंभिक क्षमता वैकल्पिक अनुकूलन है।
Hashtable बनाम Dictionary<TKey, TValue>
| विशेषता | Hashtable | Dictionary<TKey, TValue> |
|---|---|---|
| प्रकार सुरक्षा | नहीं (object) | हां (जेनेरिक) |
| प्रदर्शन | धीमा (बॉक्सिंग) | तेज़ |
| नल कुंजी | नहीं | नहीं (डिफ़ॉल्ट) |
| थ्रेड सुरक्षा | Synchronized रैपर | नहीं (मैन्युअल लॉकिंग) |
| अनुशंसित | लीगेसी कोड | नया कोड |
सर्वोत्तम अभ्यास
नए विकास के लिए हमेशा Dictionary<TKey, TValue> उपयोग करें। Hashtable केवल .NET Framework 1.x संगतता के लिए मौजूद है।