पहली चीज़ जो आपको जानने की ज़रूरत है, वह यह है कि 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?