Hashtable
की रचना जावा 1.5 में जेनेरिक के साथ किए गए किसी भी काम की भविष्यवाणी करती है, इसलिए यहां संभावित परिदृश्य यह था कि जेनेरिकों को फिर से लगाया गया था।
हालांकि एक बड़ा बयान इस तथ्य के कारण हो सकता है कि table
एक सरणी है, और जेनेरिक और सरणी बस अच्छी तरह से नहीं मिलती हैं।
तो table
(Hashtable
में क्षेत्र) टाइप किया गया है, तो आप इन घोषणाओं का एक बहुत से निपटने के लिए चाहता हूँ ...
// Generic array creation!
Entry<K, V>[] newMap = new Entry<K, V>[newCapacity];
... और संभावना डिजाइन/कार्यान्वयन निर्णय था जेनेरिकों के पूर्ण अनुग्रह के विरोध में अनुकूलता के लिए प्रयास करने के लिए।
भी ध्यान रखें कि किसी वाइल्ड कार्ड के साथ एक सरणी प्रकार बनाने तथ्य के कारण एक संकलन समय त्रुटि का कारण नहीं होगा, एक ठोस प्रकार होगा साथ एक सरणी बनाने जबकि, कि एक अबाध वाइल्डकार्ड is considered reifiable साथ एक सामान्य प्रकार:
List<?>[] foo = new ArrayList[10]; // perfectly legal but not encouraged
List<String> bar = new ArrayList[10]; // not legal
सम्मेलन आगे बढ़ते हुए, बजाय HashMap
उपयोग करने के लिए किया जाएगा इस विशेष कार्यान्वयन दोनों सिंक्रनाइज़ है और अभी भी उस में पूर्व 1.5 सम्मेलनों का एक बहुत का उपयोग करता है के बाद से। (यदि आप सिंक्रनाइज़ेशन चाहते हैं, तो दस्तावेज़ भी ConcurrentHashMap
की अनुशंसा करते हैं।)
मेरे पास स्रोत कोड (1.8) कहता है कि आवृत्ति चर 'टेबल' भी वाइल्डकार्ड है - 'निजी क्षणिक प्रविष्टि ,?> [] तालिका;'। – rgettman