2010-02-19 13 views
11

क्यों हैश मैप सार मानचित्र को बढ़ाता है और मानचित्र को लागू करता है? सार मैप पर्याप्त नहीं है, क्योंकि सार मैप मानचित्र लागू करता है?Java.util.HashMap - क्यों हैश मैप सार मैप बढ़ाता है और मानचित्र लागू करता है?

+1

अनिवार्य रूप से वही प्रश्न: http://stackoverflow.com/questions/2165204/why-does-linkedhashsete-extend-hashsete-and-implement-sete - निर्दिष्ट करके कक्षा घोषणा में कब्जा कर लिया गया - - लघु संस्करण: इस अनावश्यकता पर प्रभाव पड़ता है कि जावाडोक कैसे उत्पन्न होता है। –

+0

मुझे जांच करने के लिए प्रेरित किया गया था, और वास्तव में, जावाडोक मुद्दा नहीं था। नया लघु संस्करण: यह सिर्फ एक गलती थी। –

+0

हे। मैंने आज भी इसके बारे में पूछा। मुझे बताया गया था कि यह एक "अच्छी तरह से इरादा गलती" थी, और मूल तर्क इंटरफेस बनाम कार्यान्वयन चीज था जिसका मैंने उल्लेख किया था। –

उत्तर

5

यह अनावश्यक है। मुझे संदेह है कि यह "दस्तावेज़ीकरण" कारणों से किया गया था। हैश मैप मानचित्र लागू करता है, और आप उस पर भरोसा कर सकते हैं। तथ्य यह है कि यह सारचित्र को विस्तारित करता है तर्कसंगत रूप से केवल एक कार्यान्वयन विस्तार है। (हालांकि यह बहुत संभावना नहीं है कि HashMap के भविष्य के संस्करणों AbstractMap का विस्तार नहीं होता, वहाँ शायद वहाँ बाहर कुछ कोड है कि उम्मीद है HashMap AbstractMap को आबंटित किया जाना है। के बाद से)

0

यह अनावश्यक है, लेकिन चोट नहीं करता है। यदि वे भविष्य में AbstractMap में Map को लागू नहीं करना चाहते हैं, तो यह अभी भी काम करेगा।

+3

सिवाय इसके कि यह एक तोड़ने वाला परिवर्तन है - कहीं किसी ने 'मानचित्र मानचित्र = ऑब्जेक्टऑफटाइपएबस्ट्रैप' किया होगा। –

0

एक और बात यह है कि सार मैप एक कार्यान्वयन विस्तार है। यह ओरेकल के जेडीके के भविष्य के संस्करण में अनुपस्थित हो सकता है .. यह आईबीएम के जेडीके के वर्तमान संस्करण में अनुपस्थित हो सकता है .. लेकिन चाहे वह मौजूद है या नहीं, हैश मैप हमेशा सूची अनुबंध के अनुरूप होना चाहिए .. तो, यह स्पष्ट रूप से है 'हैश मैप लागू मैप'

संबंधित मुद्दे