जावा मधील हॅशमॅप आणि हॅशटेबल दरम्यान फरक
सामग्री
हॅशमॅप आणि हॅशटेबल हे दोन्ही ए चे प्रतिनिधित्व करण्यासाठी वापरले जातात ऑब्जेक्ट्सचा समूह मध्ये प्रतिनिधित्व आहेत
हॅशमॅप आणि हॅशटेबल दरम्यान काही अधिक फरक जाणून घेण्यासाठी खाली दर्शविलेले तुलना चार्टवर पाहूया.
- तुलना चार्ट
- व्याख्या
- मुख्य फरक
- समानता
- निष्कर्ष
तुलना चार्ट
तुलनासाठी आधार | हॅशमॅप | हॅशटेबल |
---|---|---|
अंमलबजावणी / वाढवा | हॅशमॅप क्लास मॅप इंटरफेसची अंमलबजावणी करतो आणि अॅबस्ट्रॅक्टमॅप क्लास वाढवितो. | हॅशटेबल डिक्शनरी लेगसी क्लासचे विस्तारित परंतु, ते पुन्हा इंजिनियर केले गेले आहे आणि आता ते मॅप इंटरफेस देखील लागू करते. |
सिंक्रोनाइझेशन | हॅशमॅप असंयंत्रित आहे, आणि म्हणूनच, हॅशमॅप ऑब्जेक्ट सुरक्षित थ्रेड केलेले नाही. | हॅशटेबल सिंक्रोनाइझ केले आहे आणि म्हणूनच हॅशटेबलचा ऑब्जेक्ट थ्रेड सेफ आहे. |
की / मूल्य | एक की एकदाच शून्य परत करू शकते, परंतु मूल्य शून्य वेळेस परत करू शकते. | एक की की नलला परत करू शकत नाही कारण हॅश कोड प्राप्त करण्यासाठी वापरली जाते जी हॅश टेबलची अनुक्रमणिका म्हणून वापरली जाईल किंवा व्हॅल्यू नलला परत करू शकत नाही. |
डीफॉल्ट प्रारंभिक क्षमता | हॅशमॅपची डीफॉल्ट प्रारंभिक क्षमता 16 आहे. | हॅशटेबलची डीफॉल्ट प्रारंभिक क्षमता 11 आहे. |
ट्रॅव्हर्सिंग | हॅशमॅप इटेटरद्वारे ट्रॅव्हर्ड आहे. | जसे मॅप क्लास हॅशटेबल देखील थेट ट्रॅव्हर्सिंगसाठी इटरला समर्थन देत नाही आणि म्हणूनच तो गणकाचा वापर करतो. |
हॅशमॅप ची व्याख्या
हॅशमॅप हा एक वर्ग आहे जो लागू करतो नकाशा इंटरफेस आणि वाढवते अॅबस्ट्रॅक्ट मॅप वर्ग हॅश टेबल वापरतो. हॅशमॅपचे ऑब्जेक्ट संग्रह / संचाचा संदर्भ देते / * के की चे प्रतिनिधित्व करते आणि व्ही मूल्य * / वर्ग हॅशमॅप प्रस्तुत करते प्रथम कन्स्ट्रक्टर डिफॉल्ट कन्स्ट्रक्टर आहे जो 16 च्या डीफॉल्ट क्षमतेसह हॅशमॅपच्या रिकाम्या ऑब्जेक्टची आरंभ करतो आणि 0.75 च्या डीफॉल्ट फिल रेशियो. दुसरा कंस्ट्रक्टर एम च्या व्हॅल्यूसह हॅश मॅपला इनिशियलाइज करतो. तिसरा कन्स्ट्रक्टर सुरुवातीच्या क्षमतेसह हॅश मॅप तयार करतो जो युक्ति "क्षमता" मध्ये प्रदान केलेल्या मूल्याशी संबंधित आहे. चौथा कन्स्ट्रक्टर पॅरामीटर्समध्ये प्रदान केलेल्या क्षमता आणि फिल रेशोसह हॅश नकाशाला आरंभ करतो. आता हॅश नकाशामध्ये नोंदी कशी फीड करावी हे शिकू. हॅशमॅप एचएम = नवीन हॅशमॅप (); एचएम.पुट ("अजय", 275); एचएम.पुट ("विजय", 250); एचएम.पुट ("जॉनी", 150); एचएम.पुट ("जॉर्डन", 200); सिस्टम.आउट.एलएन (एचएम); / * आउटपुट * / {विजय = 250, जॉनी = 150, अजय = 275, जॉर्डन = 200 वरील कोडमध्ये आपण पाहू शकता की मी रिकामी हॅशमॅप ऑब्जेक्ट बनविला आहे हं डीफॉल्ट प्रारंभिक क्षमता आणि डीफॉल्ट भरणोत्तर सह. मग मी व्हॅल्यूची किल्ली मॅप करणार्या पुट (के, व्ही) पद्धतीचा वापर करून हॅश नकाशामध्ये चार प्रविष्ट्या घातल्या. आपण नोंदवू शकता की प्रविष्ट्या आपण त्यांना भरत असलेल्या क्रमाने संपादित केल्या जात नाहीत कारण समाकलन ऑर्डर निश्चित केलेली नाही. आता, आपल्याकडे आधीपासूनच नोंद आहे अशा एका घटकाचा विचार करा हॅशटेबल हा एक वर्ग आहे जो विस्तारित करतो शब्दकोश क्लास जो एक वारसा वर्ग आहे आणि अंमलबजावणीसाठी नूतनीकरण केले आहे नकाशा इंटरफेस. हॅशटेबल त्याच्या डेटा स्ट्रक्चर म्हणून हॅश टेबलचा वापर करते. हॅशटेबल हॅशमॅप प्रमाणेच आहे कारण येथे देखील हॅशटेबलच्या ऑब्जेक्टच्या नोंदी संकलनाचा संदर्भ आहे जिथे प्रत्येक प्रविष्टीची जोड आहे / * के की निर्दिष्ट करते आणि व्ही की * / वर्ग हॅशटेबल की संबंधित मूल्य निर्दिष्ट करते वरील कोडमध्ये प्रथम कन्स्ट्रक्टर डिफॉल्ट कन्स्ट्रक्टर आहे जो वर्ग हॅशटेबलचा रिक्त ऑब्जेक्ट तयार करतो, त्याचा डीफॉल्ट आकार 11 आहे आणि डीफॉल्ट फिल रेशियो 0.75 आहे. दुसरा कन्स्ट्रक्टर आकार “पॅरामीटर” मध्ये प्रदान केलेल्या मूल्याशी संबंधित आकारासह हॅश टेबल बनवितो. तिसरा कन्स्ट्रक्टर पॅरामीटरमध्ये प्रदान केलेल्या आकार आणि फिल रेशोसह हॅश टेबल तयार करतो. चौथा कन्स्ट्रक्टर हॅश टेबलची किंमत एम सह प्रारंभ करते. आता आपण हे कसे समाविष्ट करायचे ते शिकू हॅशटेबल एचटी = नवीन हॅशटेबल (); एचटी.पुट (नवीन हॅशकोड (2), 275); एचटी.पुट (नवीन हॅशकोड (12), 250); एचटी.पुट (नवीन हॅशकोड (16), 150); एचटी.पुट (नवीन हॅशकोड (8), 200); सिस्टम.आउट.एलएन (एचटी); / * आउटपुट * / {12 = 250, 16 = 150,2y = 275, 8 = 200 वरील कोडमध्ये मी हॅशटेबलची रिकामी ऑब्जेक्ट तयार केली आणि पुट () मेथड वापरून चार एंट्रीस घातल्या. इनसेट पुथ मेथड मला हॅशकोड () म्हणतात जे कॉम्प्यूट करते आणि हॅश कोड व्हॅल्यू रिटर्न करतात जे एंट्री ऑब्जेक्टसाठी इंडेक्स व्हॅल्यू म्हणून काम करतात. जसे आपण पाहू शकता की मी हॅश टेबलच्या आकाराचा उल्लेख केला नाही, तो डीफॉल्टनुसार तो 11 होईल. येथे देखील, इन्सर्ट ऑर्डर संरक्षित केली जात नाही आणि म्हणून, जेव्हा एड नोंदी अनुक्रमात दिसत नाहीत तेव्हा ते दिले गेले. हॅशमॅप कार्यक्षमतेत अधिक चांगले आहे कारण त्याचे ऑब्जेक्ट्स सिंचन नसलेल्या आहेत आणि एकाधिक थ्रेड एकाच वेळी ऑपरेट करू शकतात आणि म्हणूनच ते हॅशटेबलपेक्षा वेगवान आहे.
हॅशटेबलची व्याख्या
समानता:
निष्कर्ष: