"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > हैशसेट की खोज: अव्यवस्थित संग्रह में एक गोता

हैशसेट की खोज: अव्यवस्थित संग्रह में एक गोता

2024-11-08 को प्रकाशित
ब्राउज़ करें:249

Exploring HashSet: A Dive into Unordered Collections

परिचय

हैशसेट क्लास जावा कलेक्शन फ्रेमवर्क का हिस्सा है, जो एक तेज़, अव्यवस्थित संग्रह प्रदान करता है जो डुप्लिकेट तत्वों की अनुमति नहीं देता है। इसे हैशमैप के शीर्ष पर बनाया गया है, जिसका अर्थ है कि यह समान समय जटिलता लाभ प्राप्त करता है लेकिन पूरी तरह से तत्व विशिष्टता पर केंद्रित है। इस लेख में, हम पता लगाएंगे कि हैशसेट कैसे काम करता है, क्या चीज़ इसे अद्वितीय बनाती है, और यह अन्य संग्रहों से अलग क्यों है।


हैशसेट क्या है?

एक हैशसेट है:

  • अव्यवस्थित: तत्वों का कोई पूर्वानुमानित अनुक्रम नहीं है।
  • अद्वितीय: डुप्लिकेट तत्वों को नजरअंदाज कर दिया जाता है।
  • आंतरिक रूप से HashMap द्वारा समर्थित: यह तत्वों को संग्रहीत करने के लिए HashMap का उपयोग करता है, मूल्यों को हटाते समय केवल कुंजियों पर ध्यान केंद्रित करता है।
  • O(1) औसत समय जटिलता: सम्मिलन, विलोपन और खोज जैसे संचालन अत्यधिक कुशल हैं।

1. हैशसेट प्रारंभ करना

// Parameterized constructor with initial capacity
Set setWithInitialCapacity = new HashSet(5);

// Parameterized constructor using a collection
Set setWithCollection = new HashSet(Arrays.asList(4, 4, 3));

// Default constructor with default capacity 16
Set set = new HashSet();

स्पष्टीकरण:

  • डिफ़ॉल्ट कंस्ट्रक्टर: 16 की प्रारंभिक क्षमता के साथ एक हैशसेट बनाता है।
  • पैरामीटरयुक्त कंस्ट्रक्टर: आप प्रारंभिक क्षमता निर्दिष्ट कर सकते हैं, लेकिन ध्यान दें कि क्षमता आकार के समान नहीं है। आकार सेट में तत्वों की वास्तविक संख्या को संदर्भित करता है।
  • एक संग्रह का उपयोग करना: एक सूची जैसे संग्रह से एक हैशसेट बनाया जा सकता है, यह सुनिश्चित करते हुए कि केवल अद्वितीय तत्व बरकरार रखे गए हैं।

2. हैशसेट में तत्व जोड़ना

set.add(1);
set.add(2);
set.add(1); // Duplicate value is ignored
System.out.println(set); // Output -> [1, 2]

स्पष्टीकरण:

  • ऐड() विधि हैशसेट में तत्वों को सम्मिलित करती है।
  • डुप्लिकेट तत्वों को नजरअंदाज कर दिया जाता है। जब आप 1 को दो बार जोड़ने का प्रयास करते हैं, तो केवल पहली घटना बरकरार रहती है।

कुंजी ले जाएं

यदि आपको डुप्लिकेट मानों को अनदेखा करने के बजाय उन्हें बदलने की आवश्यकता है, तो हैशसेट सही विकल्प नहीं होगा। ऐसा इसलिए है क्योंकि यह तत्व विशिष्टता को प्राथमिकता देता है।


3. आकार बनाम क्षमता की जाँच करना

// Parameterized constructor with initial capacity
Set setWithInitialCapacity = new HashSet(5);
System.out.println(setWithInitialCapacity.size()); // Output -> 0

हालांकि setWithInitialCapacity की क्षमता 5 है, आकार 0 है क्योंकि आकार सेट में मौजूद तत्वों की संख्या को दर्शाता है, प्रारंभिक क्षमता को नहीं। आप क्षमता को आंतरिक भंडारण स्थान के रूप में सोच सकते हैं, जो तत्वों को जोड़ने पर समायोजित हो जाती है।


4. संग्रह के साथ हैशसेट का उपयोग करना

// Parameterized constructor using a collection
Set setWithCollection = new HashSet(Arrays.asList(4, 4, 3));
System.out.println(setWithCollection); // Output -> [3, 4] or [4, 3]

स्पष्टीकरण:

  • हालांकि तीन तत्व सूची (4, 4, 3) में प्रदान किए गए थे, डुप्लिकेट मान 4 को हटा दिया गया था, केवल दो तत्व (3 और 4) बचे थे।
  • तत्वों का क्रम अप्रत्याशित है क्योंकि हैशसेट कोई प्रविष्टि या प्राकृतिक क्रम बनाए नहीं रखता है।

यदि आपको क्रमबद्ध तत्वों को बनाए रखने की आवश्यकता है, तो ट्रीसेट का उपयोग करने पर विचार करें, जो सुनिश्चित करता है कि तत्व आरोही क्रम में व्यवस्थित हैं


5. हैशसेट में अनुक्रमण - क्या यह संभव है?

साक्षात्कारों में, एक आम सवाल यह है कि क्या आप हैशसेट में किसी तत्व का index पुनः प्राप्त कर सकते हैं। उत्तर है नहीं, क्योंकि हैशसेट तत्वों को संग्रहीत करने के लिए एक हैशिंग तंत्र का उपयोग करता है, न कि किसी सूची या सरणी जैसी सूचकांक-आधारित संरचना का।


मुख्य बिंदुओं का सारांश

  1. अव्यवस्थित और अद्वितीय: हैशसेट केवल अद्वितीय तत्वों को बरकरार रखता है, डुप्लिकेट को अनदेखा करता है।
  2. HashMap पर निर्मित: यह तत्वों को संग्रहीत करने के लिए आंतरिक HashMap की कुंजियों का उपयोग करता है।
  3. तेज संचालन: तत्वों को जोड़ने, हटाने और जांचने के लिए औसत समय जटिलता O(1) है।
  4. क्षमता बनाम आकार: क्षमता आवंटित स्थान है, जबकि आकार तत्वों की वास्तविक संख्या है।
  5. कोई अनुक्रमणिका नहीं: आप हैशिंग तंत्र के कारण अनुक्रमणिका द्वारा तत्वों को पुनः प्राप्त नहीं कर सकते।

हैशमैप से संबंध

चूंकि हैशसेट एक हैशमैप द्वारा समर्थित है, यह तत्वों को संग्रहीत करने के लिए मानचित्र की कुंजियों का उपयोग करता है, जबकि मान अप्रासंगिक हैं। यही कारण है कि HashSet में प्रत्येक तत्व अद्वितीय होना चाहिए, HashMap की कुंजियों की तरह।


निष्कर्ष

हैशसेट एक शक्तिशाली उपकरण है जब आपको एक तेज़, अव्यवस्थित संग्रह की आवश्यकता होती है जो डुप्लिकेट से बचाता है। हालाँकि यह अधिकांश परिचालनों के लिए O(1) समय जटिलता प्रदान करता है, लेकिन इसमें सॉर्टिंग और इंडेक्सिंग जैसी सुविधाओं का अभाव है। डेवलपर्स के लिए, यह जानना कि हैशसेट, हैशमैप से कैसे संबंधित है, इसके आंतरिक कामकाज को समझने और संग्रह ढांचे का बेहतर उपयोग करने में मदद करता है।

अगली पोस्ट में, हम संग्रह अवधारणाओं के बारे में उम्मीदवारों के ज्ञान का परीक्षण करने के लिए साक्षात्कार में अक्सर पूछे जाने वाले एक सामान्य साक्षात्कार प्रश्न का पता लगाएंगे।


संबंधित पोस्ट

  • जावा बुनियादी बातें

  • साक्षात्कार अनिवार्यताओं की सारणी

  • जावा मेमोरी एसेंशियल्स

हैप्पी कोडिंग!

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/arshisaxena26/exploring-hashset-a-dive-ind-indo-nordered-collections-4ehb?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3