पहली चीज़ जो आपको जानने की ज़रूरत है, वह यह है कि HashSet
ए की तरह कार्य करता है Set
, जिसका अर्थ है कि आप अपनी वस्तु को सीधे जोड़ते हैं HashSet
और इसमें डुप्लिकेट नहीं हो सकते। आप सीधे अपने मूल्य को इसमें जोड़ते हैं HashSet
।
हालाँकि, HashMap
एक Map
प्रकार है। इसका मतलब है कि हर बार जब आप एक प्रविष्टि जोड़ते हैं, तो आप एक कुंजी-मूल्य जोड़ी बनाते हैं।
में HashMap
आप डुप्लिकेट मान हो सकते हैं, लेकिन कुंजी नकल नहीं। में HashMap
नई प्रविष्टि पुराने एक की जगह लेगा। सबसे हालिया प्रविष्टि में होगा HashMap
।
HashMap और HashSet के बीच लिंक को समझना:
याद रखें, HashMap
डुप्लिकेट कुंजी नहीं हो सकती। दृश्य के पीछे HashSet
एक का उपयोग करता है HashMap
।
जब आप किसी ऑब्जेक्ट को एक में जोड़ने का प्रयास करते हैं HashSet
, तो यह प्रविष्टि वास्तव में एक कुंजी के रूप में संग्रहीत की जाती है HashMap
- वही HashMap
जो दृश्य के पीछे उपयोग की जाती है HashSet
। चूंकि इस अंतर्निहित HashMap
को एक कुंजी-मूल्य जोड़ी की आवश्यकता है, हमारे लिए एक डमी मूल्य उत्पन्न होता है।
अब जब आप किसी अन्य डुप्लिकेट ऑब्जेक्ट को उसी में सम्मिलित करने का प्रयास करते हैं HashSet
, तो यह फिर से HashMap
नीचे झूठ की एक कुंजी के रूप में सम्मिलित करने का प्रयास करेगा । हालाँकि, HashMap
डुप्लिकेट का समर्थन नहीं करता है। इसलिए, HashSet
अब भी उस प्रकार का केवल एक मूल्य होगा। एक साइड नोट के रूप में, हर डुप्लिकेट कुंजी के लिए, क्योंकि हाशसेट में हमारे प्रवेश के लिए उत्पन्न मूल्य कुछ यादृच्छिक / डमी मूल्य है, कुंजी को बिल्कुल भी प्रतिस्थापित नहीं किया गया है। यह कुंजी को हटाने और एक ही कुंजी (डमी मूल्य समान है) को वापस जोड़ने पर ध्यान नहीं दिया जाएगा।
सारांश:
HashMap
नकल की अनुमति देता है values
, लेकिन नहीं keys
।
HashSet
इसमें डुप्लिकेट नहीं हो सकते।
किसी ऑब्जेक्ट का जोड़ सफलतापूर्वक पूरा हुआ है या नहीं, इसके साथ खेलने के लिए, boolean
जब आप कॉल करते हैं, तो आप लौटाए गए मान की जांच कर सकते हैं.add()
और देख सकते हैं कि यह वापस आता है true
या नहीं false
। लौटा true
तो डाला था।
HashMap
, तो देखने के लिएkey
पहले से ही कॉल करने से पहले से मौजूद हैput
समर्थन परmap
?