जावा में हाशप और हैशटेबल के बीच अंतर
विषय
HashMap और Hashtable, दोनों एक का प्रतिनिधित्व करने के लिए उपयोग किया जाता है वस्तुओं का समूह में प्रतिनिधित्व किया है
हैशपे और हैशटेबल के बीच कुछ और अंतरों को जानने के लिए नीचे दिए गए तुलना चार्ट को देखें।
- तुलना चार्ट
- परिभाषा
- मुख्य अंतर
- समानताएँ
- निष्कर्ष
तुलना चार्ट
तुलना के लिए आधार | हैश मैप | हैश टेबल |
---|---|---|
लागू / बढ़ाएँ | HashMap वर्ग मानचित्र इंटरफ़ेस को लागू करता है और एक AbstractMap वर्ग का विस्तार करता है। | हैशटेबल डिक्शनरी लिगेसी वर्ग का विस्तार करता है, लेकिन यह फिर से इंजीनियर है और अब यह मैप इंटरफेस को भी लागू करता है। |
तादात्म्य | HashMap अनसंकटाइज़्ड है, और इसलिए, HashMap ऑब्जेक्ट सुरक्षित रूप से थ्रेडेड नहीं है। | हैशटेबल सिंक्रनाइज़ है, और इसलिए, हैशटेबल का उद्देश्य थ्रेड सुरक्षित है। |
कुंजी / मूल्य | एक कुंजी केवल एक बार नल वापस कर सकती है, लेकिन एक मूल्य किसी भी समय नल को वापस कर सकता है। | कोई कुंजी Null नहीं लौटा सकती क्योंकि इसका उपयोग हैश कोड प्राप्त करने के लिए किया जाता है जिसे हैश तालिका के सूचकांक के रूप में उपयोग किया जाएगा, और कोई मान Null वापस नहीं कर सकता है। |
डिफ़ॉल्ट प्रारंभिक क्षमता | HashMap की डिफ़ॉल्ट प्रारंभिक क्षमता 16 है। | हैशटेबल की डिफ़ॉल्ट प्रारंभिक क्षमता 11 है। |
traversing | HashMap Iterator द्वारा ट्रैवर्स किया गया है। | मैप क्लास की तरह हैशटेबल भी ट्रैवर्सिंग के लिए सीधे Iterator का समर्थन नहीं करता है और इसलिए, यह Enumerator का उपयोग करता है। |
हाशप की परिभाषा
HashMap एक वर्ग है जो लागू करता है नक्शा इंटरफ़ेस और फैली हुई है AbstractMap वर्ग हैश तालिका का उपयोग करता है। HashMap की वस्तु एक संग्रह / सेट को संदर्भित करती है / * K कुंजी का प्रतिनिधित्व करता है, और V मूल्य का प्रतिनिधित्व करता है * / वर्ग HashMap पहला कंस्ट्रक्टर एक डिफ़ॉल्ट कंस्ट्रक्टर है जो 16 की डिफ़ॉल्ट क्षमता और 0.75 के डिफॉल्ट फिल अनुपात के साथ हाशप के खाली ऑब्जेक्ट को इनिशियलाइज़ करता है। दूसरा कंस्ट्रक्टर मी के मूल्य के साथ हैश मैप को इनिशियलाइज़ करता है। तीसरा निर्माता तर्क क्षमता "क्षमता" में प्रदान किए गए मूल्य के अनुरूप प्रारंभिक क्षमता वाला हैश मैप बनाता है। चौथा कंस्ट्रक्टर हैश मैप को एक क्षमता और मापदंडों में प्रदान किए गए भरण अनुपात के साथ आरंभ करता है। आइए अब सीखते हैं कि हैश मैप में प्रविष्टियों को कैसे फीड किया जाए। हशमप hm = new Hashmap (); hm.put ("अजय", 275); hm.put ("विजय", 250); hm.put ("जॉनी", 150); hm.put ("जॉर्डन", 200); System.out.ln (hm); / * आउटपुट * / {विजय = 250, जॉनी = 150, अजय = 275, जॉर्डन = 200} उपरोक्त कोड में, आप देख सकते हैं कि मैंने एक खाली HashMap ऑब्जेक्ट बनाया है एचएम डिफ़ॉल्ट प्रारंभिक क्षमता और डिफ़ॉल्ट भरण अनुपात के साथ। फिर मैंने पुट (K, V) पद्धति का उपयोग करते हुए हैश मैप में चार प्रविष्टियाँ डालीं, जो मूल्य की कुंजी को मैप करती हैं। आप देख सकते हैं कि प्रविष्टियाँ किसी अनुक्रम में एड नहीं हैं जो आप उन्हें खिलाते हैं क्योंकि प्रविष्टि क्रम तय नहीं है। अब, ऐसे मामले पर विचार करें, जिसमें आपके पास पहले से ही एक प्रविष्टि है हैशटेबल एक वर्ग है जो विस्तार करता है शब्दकोश वर्ग जो एक विरासत वर्ग है और जिसे लागू करने के लिए पुनर्संगठित किया जाता है नक्शा इंटरफेस। हैशटेबल अपनी डेटा संरचना के रूप में हैश तालिका का उपयोग करता है। हैशटेबल हाशप के समान है क्योंकि यहां भी हैशटेबल का उद्देश्य प्रविष्टियों के संग्रह को संदर्भित करता है जहां प्रत्येक प्रविष्टि एक जोड़ी है / * K कुंजी निर्दिष्ट करता है और V कुंजी के साथ जुड़े मूल्य को निर्दिष्ट करता है * / वर्ग हैशटेबल उपरोक्त कोड में, पहला कंस्ट्रक्टर एक डिफॉल्ट कंस्ट्रक्टर है जो क्लास हैशटेबल का एक खाली ऑब्जेक्ट बनाता है, इसका डिफॉल्ट साइज 11 है और डिफॉल्ट फिल रेशो 0.75 है। दूसरा निर्माण पैरामीटर "आकार" में दिए गए मूल्य के अनुरूप आकार के साथ एक हैश तालिका बनाता है। तीसरा निर्माण एक हैश तालिका बनाता है जिसमें एक आकार और एक भरण अनुपात पैरामीटर में प्रदान किया जाता है। चौथा कंस्ट्रक्टर हैश तालिका को मूल्य m के साथ आरंभ करता है। आइए अब सीखते हैं कि कैसे सम्मिलित करें हैशटेबल ht = नया हैशटेबल (); ht.put (नया हैशकोड (2), 275); ht.put (नया हैशकोड (12), 250); ht.put (नया हैशकोड (16), 150); ht.put (नया हैशकोड (8), 200); System.out.ln (ht); / * आउटपुट * / {12 = 250, 16 = 150,2y = 275, 8 = 200} उपरोक्त कोड में, मैंने हैशटेबल की एक खाली वस्तु बनाई और पुट () विधि का उपयोग करके चार प्रविष्टियाँ डालीं। पुट विधि के अंदर मैंने हैशकोड () कहा है जो हैश कोड मान की गणना करता है और लौटाता है जो प्रविष्टि ऑब्जेक्ट के लिए इंडेक्स मान के रूप में कार्य करेगा। जैसा कि आप देख सकते हैं कि मैंने हैश तालिका के आकार का उल्लेख नहीं किया है इसलिए यह डिफ़ॉल्ट रूप से 11. होगा। यहां भी, प्रविष्टि क्रम संरक्षित नहीं है और इसलिए, जब एड प्रविष्टियां अनुक्रम में नहीं दिखाई देती हैं तो इसे खिलाया गया था। हैशपॉप प्रदर्शन में बेहतर है क्योंकि इसकी वस्तुएं असंबद्ध हैं और एक ही समय में कई धागे इस पर काम कर सकते हैं और इसलिए, यह हैशटेबल से तेज है।
हैशटेबल की परिभाषा
समानता:
निष्कर्ष: