what is hashmap java
यह जावा HashMap ट्यूटोरियल बताता है कि जावा में एक HashMap क्या है और इसका उपयोग कैसे करें। इसमें शामिल है कि कैसे घोषित करें, प्रारंभ करें, Iterate, कार्यान्वयन और प्रिंट हाशप:
Java में HashMap, मानचित्र पर आधारित एक संग्रह है और इसमें कुंजी-मूल्य जोड़े शामिल हैं। एक HashMap द्वारा या द्वारा चिह्नित किया जाता है। HashMap तत्व को एक कुंजी का उपयोग करके एक्सेस किया जा सकता है यानी हमें HashMap तत्व तक पहुंचने के लिए कुंजी पता होना चाहिए।
हाशपैप 'हैशिंग' नामक तकनीक का उपयोग करता है। हैशिंग में, कुछ एल्गोरिथ्म या function हैश फ़ंक्शन ’को लागू करके एक लंबी स्ट्रिंग को छोटी स्ट्रिंग में बदल दिया जाता है। एक स्ट्रिंग को एक छोटी स्ट्रिंग में बदल दिया जाता है क्योंकि यह तेजी से खोज करने में मदद करता है। इसका उपयोग कुशल अनुक्रमण के लिए भी किया जाता है।
=> एक्सक्लूसिव जावा ट्रेनिंग ट्यूटोरियल सीरीज़ के लिए यहां जाएं।
आप क्या सीखेंगे:
- जावा में हैशपॉप
- जावा मानचित्र बनाम हैशपॉप
- निष्कर्ष
जावा में हैशपॉप
एक हैशपॉट हैशटेबल के समान अंतर के साथ हैशशैप सिंक्रनाइज़ नहीं है और कुंजी और मान के लिए शून्य मान की अनुमति देता है।
हाशप की कुछ महत्वपूर्ण विशेषताएं नीचे दी गई हैं:
- HashMap जावा में 'Hashmap' वर्ग में लागू किया गया है जो java.util पैकेज का एक हिस्सा है।
- HashMap वर्ग वर्ग 'AbstractMap' से आता है जो आंशिक रूप से मैप इंटरफ़ेस को लागू करता है।
- हैशपॉप ‘क्लोन करने योग्य’ और also क्रमबद्ध ’इंटरफेस को भी लागू करता है।
- HashMap डुप्लिकेट मानों की अनुमति देता है लेकिन डुप्लिकेट कुंजियों की अनुमति नहीं देता है। HashMap कई अशक्त मूल्यों की भी अनुमति देता है, लेकिन एक अशक्त कुंजी केवल एक ही हो सकती है।
- हैशपप असिंचित है और तत्वों के क्रम की गारंटी नहीं देता है।
- Java HashMap वर्ग की प्रारंभिक क्षमता 16 है और डिफ़ॉल्ट (प्रारंभिक) लोड फैक्टर 0.75 है।
कैसे जावा में एक HashMap घोषित करने के लिए?
जावा में एक हाशपैप java.util पैकेज का एक हिस्सा है। इसलिए, यदि हमें अपने कोड में हाशप का उपयोग करने की आवश्यकता है, तो हमें पहले निम्नलिखित कथनों में से एक का उपयोग करके कार्यान्वयन वर्ग को आयात करना होगा:
import java.util.*;
या
import java.util.HashMap;
हाशप क्लास की सामान्य घोषणा है:
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable
यहां, K => मानचित्र में मौजूद कुंजियों का प्रकार
V => मानचित्र में कुंजियों के लिए मैप किए गए मानों का प्रकार
एक HashMap बनाएँ
Java में एक HashMap निम्नानुसार बनाया जा सकता है:
import java.util.HashMap; HashMap cities_map = new HashMap ();
उपरोक्त कथन में सबसे पहले जावा में हैशपॉप क्लास शामिल है। फिर अगले कथन में, हम एक प्रकार का हैशपाउन बनाते हैं जिसका नाम map city_map 'है जिसमें प्रमुख प्रकार के रूप में पूर्णांक और स्ट्रिंग के रूप में मान हैं।
एक बार हैशपॉप बनाने के बाद, हमें इसे मूल्यों के साथ आरंभीकृत करने की आवश्यकता है।
हश मैप की शुरुआत कैसे करें?
हम मानचित्र में कुछ मान डालकर हाशप को पुट विधि का उपयोग करके आरंभ कर सकते हैं।
नीचे दिए गए कार्यक्रम जावा में हाशप के आरंभ को दर्शाता है।
import java.util.*; class Main{ public static void main(String args()){ //create a HashMap and print HashMap colorsMap=new HashMap(); System.out.println('Initial Map: '+colorsMap); //put some initial values into it using put method colorsMap.put(100,'Red'); colorsMap.put(101,'Green'); colorsMap.put(102,'Blue'); //print the HashMap System.out.println('After adding elements:'); for(Map.Entry m:colorsMap.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
आउटपुट:
प्रारंभिक नक्शा: {}
तत्वों को जोड़ने के बाद:
100 नेटवर्क
101 हरा
102 नीला
आंतरिक रूप से हाशप कैसे काम करता है?
हम जानते हैं कि हाशपॅप कुंजी-मूल्य जोड़े का एक संग्रह है और यह ashing हैशिंग ’नामक तकनीक का उपयोग करता है। आंतरिक रूप से, HashMap नोड्स की एक सरणी है। HashMap कुंजी-मूल्य जोड़े को संग्रहीत करने के लिए सरणी और लिंक्डलिस्ट का उपयोग करता है।
नीचे दिए गए हशप के नोड की एक संरचना है जिसे प्रोग्राम के रूप में एक वर्ग के रूप में दर्शाया गया है।
जैसा कि ऊपर के नोड प्रतिनिधित्व से देखा गया है, एक नोड में एक लिंक की गई सूची नोड के समान संरचना है। इन नोड्स की एक सरणी को बकेट कहा जाता है। प्रत्येक बाल्टी में समान क्षमता नहीं हो सकती है और इसमें एक से अधिक नोड भी हो सकते हैं।
HashMap का प्रदर्शन दो मापदंडों से प्रभावित है:
(i) प्रारंभिक क्षमता: क्षमता को हाशप में बाल्टियों की संख्या के रूप में परिभाषित किया गया है। जब इसे बनाया जाता है तो प्रारंभिक क्षमता को हाशपॉइंट ऑब्जेक्ट की क्षमता के रूप में परिभाषित किया जाता है। हाशपैप की क्षमता हमेशा 2 से गुणा की जाती है।
(ii) लोडफ़ैक्टर: भारोत्तोलक वह पैरामीटर है जो मापता है कि पुन: चार्ज करते समय - क्षमता बढ़ाना, किया जाएगा।
ध्यान दें कि यदि क्षमता अधिक है, तो लोड फैक्टर छोटा होगा क्योंकि रिहैशिंग की आवश्यकता नहीं होगी। इसी तरह, जब क्षमता कम होती है, तो लोड फैक्टर अधिक होगा क्योंकि हमें बार-बार रिहा करने की आवश्यकता होगी। इस प्रकार हमें एक कुशल हैशपॉप डिजाइन करने के लिए इन दो कारकों को सावधानीपूर्वक चुनने के लिए देखभाल का अभ्यास करना चाहिए।
कैसे एक HashMap Iterate करने के लिए?
हैशपॉप को कुंजी-मूल्य जोड़े में हेरफेर करने या प्रिंट करने के लिए ट्रैवर्स किया जाना चाहिए।
ऐसे दो तरीके हैं जिनसे हम HashMap के माध्यम से यात्रा या यात्रा कर सकते हैं।
- लूप के लिए उपयोग करना
- लूप और इटरेटर का उपयोग करते हुए।
नीचे दिए गए जावा प्रोग्राम इन दोनों तरीकों के कार्यान्वयन को दर्शाता है।
सबसे पहले, हम प्रविष्टि सेट विधि का उपयोग करके हैशपॉप से प्रविष्टियों के सेट को पुनः प्राप्त करते हैं और फिर हम लूप के लिए सेट का उपयोग करते हैं। फिर हम क्रमशः केकेवाई () और गेटवैल्यू () विधियों का उपयोग करके कुंजी-मूल्य वाले जोड़े प्रिंट करते हैं।
थोड़ी देर के लूप का उपयोग करके हाशप को पार करने के लिए, हम पहले हाशप के लिए एक इटरेटर सेट करते हैं और फिर इटरेटर का उपयोग करके की-वैल्यू के जोड़े को एक्सेस करते हैं।
import java.util.*; public class Main{ public static void main(String () args) { //create a HashMap and initialize it HashMap cities_map = new HashMap(); cities_map.put(10, 'MUM'); cities_map.put(1, 'DL'); cities_map.put(20, 'PUN'); cities_map.put(7, 'GOA'); cities_map.put(3, 'HYD'); //print using for loop System.out.println('HashMap using for Loop:'); System.out.println(' KEY VALUE'); for (Map.Entry mapSet : cities_map.entrySet()) { System.out.println(' '+mapSet.getKey() + ' ' + mapSet.getValue()); } //print using while loop with iterator System.out.println('HashMap using while Loop:'); System.out.println(' KEY VALUE'); Iterator iterator = cities_map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry mapSet2 = (Map.Entry) iterator.next(); System.out.println(' '+mapSet2.getKey() + ' ' + mapSet2.getValue()); } } }
आउटपुट:
लूप के लिए उपयोग करने वाला हैशपॉप:
मौलिक मूल्य
1 डीएल
3 लंबी
20 PUN
7 GOA
10 एमयूएम
लूप का उपयोग करते समय हैशपॉप:
मौलिक मूल्य
1 डीएल
3 लंबी
20 PUN
7 GOA
10 एमयूएम
प्रिंट एक हैश मैप
आइए नीचे दिए गए कार्यक्रम में दिखाए गए फ़ॉरेस्ट लूप का उपयोग करते हुए हैश मैप को प्रिंट करने का एक और उदाहरण देखें।
import java.util.HashMap; public class Main { public static void main(String() args) { // create a HashMap and initialize HashMap colors = new HashMap(); colors.put('Red', 1); colors.put('Orange', 5); colors.put('Magenta', 8); //print the HashMap System.out.println('HashMap contents:'); System.out.println(' KEY VALUE'); for (String i : colors.keySet()) { System.out.println(' ' + i + ' ' + colors.get(i)); } } }
आउटपुट:
HashMap सामग्री:
मौलिक मूल्य
नेटवर्क 1
मजेंटा 8
नारंगी ५
यूट्यूब मुफ्त कन्वर्टर wav करने के लिए ऑनलाइन
HashMap कंस्ट्रक्टर / जावा में तरीके
नीचे दी गई तालिका जावा में हैशपॉप क्लास द्वारा प्रदान किए गए कंस्ट्रक्टर और तरीके दिखाती है।
कंस्ट्रक्टर्स
कंस्ट्रक्टर प्रोटोटाइप | विवरण | |
---|---|---|
सभी रखें | शून्य putAll (मानचित्र मानचित्र) | हाशपैप में ’मैप’ तत्वों को निर्दिष्ट करता है। |
हैश मैप () | डिफ़ॉल्ट निर्माता। | |
हैशपॉप (मानचित्र m) | दिए गए मानचित्र ऑब्जेक्ट एम से एक नया हैशपॉप बनाता है। | |
HashMap (अंतर क्षमता) | तर्क 'क्षमता' द्वारा दी गई प्रारंभिक क्षमता के साथ एक नया हैशपॉप बनाता है। | |
हैशपॉप (अंतर क्षमता, फ्लोट लोडफैक्टर) | निर्माता द्वारा प्रदान की गई क्षमता और भार के मूल्यों का उपयोग करके एक नया हैशपॉप बनाता है। |
तरीकों
तरीका | विधि प्रोटोटाइप | विवरण |
---|---|---|
स्पष्ट | शून्य स्पष्ट () | हैशपॉप में सभी मैपिंग साफ़ करता है |
खाली है | बूलियन इम्प्टी () | जाँचता है कि क्या हाशपैप खाली है। सही है अगर हाँ |
क्लोन | ऑब्जेक्ट क्लोन () | हैशपॉप में कीप और वैल्यू मैपिंग की क्लोनिंग के बिना एक उथली कॉपी लौटाता है। |
एंट्रीसेट | प्रविष्टि सेट करें () | संग्रह के रूप में हैशपैप में मैपिंग लौटाता है |
चाबीगुछा | सेट कीसेट () | हाशप में कुंजी का एक सेट लौटाता है। |
लगाया हुआ | V put (ऑब्जेक्ट कुंजी, ऑब्जेक्ट मान) | HashMap में एक कुंजी-मूल्य प्रविष्टि सम्मिलित करता है। |
putIfAbsent | V putIfAbsent (K कुंजी, V मान) | यदि पहले से मौजूद नहीं है, तो हाशप में कुंजी-मूल्य जोड़ी दी गई है। |
हटाना | V निष्कासन (ऑब्जेक्ट कुंजी) | दिए गए कुंजी के लिए HashMap से एक प्रविष्टि हटाएं। |
हटाना | बूलियन निकालें (ऑब्जेक्ट कुंजी, ऑब्जेक्ट मान) | दिए गए की-वैल्यू पेयर को HashMap से हटाता है। |
गणना करना | V कंप्यूट (K कुंजी, BiFunction रीमैपिंग जंक्शन) | दी गई कुंजी और उसके वर्तमान मूल्य या शून्य मान के लिए apping रीमैपिफंक्शन ’का उपयोग करके मैपिंग की गणना करता है। |
तरीका | विधि प्रोटोटाइप | विवरण |
computeIfAbsent | V computeIfAbsent (K कुंजी, फंक्शन मैपिंग फंक्शन) | Apping मैपिंगफंक्शन ’का उपयोग करते हुए मैपिंग की गणना करता है और यदि पहले से मौजूद या शून्य नहीं है तो कुंजी-मूल्य जोड़े सम्मिलित करता है। |
computeIfPresent | V computeIfPresent (K कुंजी, BiFunction remappingFunction) | यदि पहले से मौजूद है और गैर-अशक्त है, तो कुंजी को दिए गए apping रीमैपिंग फंक्शन ’का उपयोग करके एक नए मानचित्रण की गणना करता है। |
सम्मिलित है | बूलियन समरूपता (वस्तु मान) | यह जाँचता है कि क्या दिए गए मूल्य हाशप में मौजूद है और यदि हाँ तो सही है। |
होता है | बूलियन होता हैकेय (ऑब्जेक्ट कुंजी) | जाँचता है कि क्या दी गई कुंजी हाशप में मौजूद है और यदि हाँ तो सही है। |
बराबरी | बूलियन बराबर (ऑब्जेक्ट ओ) | हाशप के साथ दी गई वस्तु की तुलना करता है। |
प्रत्येक के लिए | शून्य forEach (BiConsumer कार्रवाई) | हशपैप में प्रत्येक प्रविष्टि के लिए 'कार्रवाई' दी गई है। |
प्राप्त | V मिलता है (ऑब्जेक्ट कुंजी) | संबंधित मूल्य के साथ दी गई कुंजी वाली वस्तु लौटाता है। |
getOrDefault | V getOrDefault (ऑब्जेक्ट कुंजी, V defaultValue) | वह मान लौटाता है जिस पर दी गई कुंजी को मैप किया जाता है। यदि मैप नहीं किया गया है तो डिफ़ॉल्ट मान लौटाता है। |
खाली है | बूलियन इम्प्टी () | जाँचता है कि क्या हाशपैप खाली है। |
जाओ | V मर्ज (K कुंजी, V मान, BiFunction रीमैपिंग फ़ंक्शन) | यह जांचता है कि क्या दी गई कुंजी शून्य है या मूल्य से जुड़ी नहीं है और फिर उसे रीमैपिंग फंक्शन का उपयोग करते हुए गैर-शून्य मान के साथ जोड़ देती है। |
बदलने के | V प्रतिस्थापित (K कुंजी, V मान) | निर्दिष्ट कुंजी के लिए दिए गए मान को बदल देता है। |
बदलने के | बूलियन की जगह (K कुंजी, V oldValue, V newValue) | दिए गए कुंजी के पुराने मान को नए मान से बदल देता है |
सबको बदली करें | शून्य रिप्लेसमेंट (बायफ़ंक्शन फ़ंक्शन) | दिए गए फ़ंक्शन को निष्पादित करता है और फ़ंक्शन के परिणाम के साथ HashMap में सभी मानों को बदलता है। |
मूल्यों | संग्रह मान () | HashMap में मौजूद मूल्यों का संग्रह लौटाता है। |
आकार | int आकार () | HashMap में प्रविष्टियों की संख्या का आकार लौटाता है। |
हशमप लागू
अगला, हम इन कार्यक्रमों में से अधिकांश को एक जावा प्रोग्राम में लागू करेंगे ताकि उनके काम को बेहतर ढंग से समझा जा सके।
निम्नलिखित जावा कार्यक्रम जावा में हैशपॉप के कार्यान्वयन को दर्शाता है। ध्यान दें कि हमने उन तरीकों का सबसे अधिक उपयोग किया है जिनकी हमने ऊपर चर्चा की थी।
import java.util.*; public class Main { public static void main(String args()) { HashMap hash_map = new HashMap(); hash_map.put(12, 'Leo'); hash_map.put(2, 'Seville'); hash_map.put(7, 'Lacy'); hash_map.put(49, 'Lily'); hash_map.put(3, 'Dillon'); System.out.println('HashMap contents:'); System.out.println(' KEY VALUE'); //display HashMap contents Set setIter = hash_map.entrySet(); Iterator map_iterator = setIter.iterator(); while(map_iterator.hasNext()) { Map.Entry map_entry = (Map.Entry)map_iterator.next(); System.out.println(' '+ map_entry.getKey() + ' ' + map_entry.getValue()); } //get value for the given key String var= hash_map.get(2); System.out.println('Value at index 2 is: '+var); //delete value given the key hash_map.remove(3); System.out.println('Hashmap after removal:'); System.out.println(' KEY VALUE'); Set iter_set = hash_map.entrySet(); Iterator iterator = iter_set.iterator(); while(iterator.hasNext()) { Map.Entry mentry = (Map.Entry)iterator.next(); System.out.println(' '+mentry.getKey() + ' ' + mentry.getValue() ); } } }
आउटपुट:
HashMap सामग्री:
मौलिक मूल्य
४ ९ लिली
2 सेविले
3 डिलन
7 लेस
12 लियो
सूचकांक 2 पर मूल्य है: सेविले
हटाने के बाद हैशमैप:
मौलिक मूल्य
४ ९ लिली
2 सेविले
7 लेस
12 लियो
जावा में सॉर्ट हाशप
Java में, HashMap ऑर्डर को संरक्षित नहीं करता है। इसलिए हमें हाशप में तत्वों को क्रमबद्ध करना होगा। हम HashMap में तत्वों को कुंजी या मान के आधार पर सॉर्ट कर सकते हैं। इस खंड में, हम दोनों छंटाई दृष्टिकोणों पर चर्चा करेंगे।
कुंजी के आधार पर हैशपेयर को क्रमबद्ध करें
import java.util.*; public class Main { public static void main(String() args) { //create and initialize a HashMap HashMap colors_map = new HashMap(); colors_map.put(9, 'Magenta'); colors_map.put(11, 'Yellow'); colors_map.put(7, 'Cyan'); colors_map.put(23, 'Brown'); colors_map.put(5, 'Blue'); colors_map.put(3, 'Green'); colors_map.put(1, 'Red'); //print the unsorted HashMap by getting a set and using iterator System.out.println('Unsorted HashMap:'); Set set = colors_map.entrySet(); Iterator iterator = set.iterator(); while(iterator.hasNext()) { Map.Entry me = (Map.Entry)iterator.next(); System.out.print(me.getKey() + ': '); System.out.println(me.getValue()); } //create a treemap from given HashMap so that the keys are sorted Map map = new TreeMap(colors_map); System.out.println('HashMap Sorted on keys:'); //print the sorted HashMap Set set2 = map.entrySet(); Iterator iterator2 = set2.iterator(); while(iterator2.hasNext()) { Map.Entry me2 = (Map.Entry)iterator2.next(); System.out.print(me2.getKey() + ': '); System.out.println(me2.getValue()); } } }
आउटपुट:
अप्रकाशित हाशप:
1: नेटवर्क
3: हरा
5: नीला
7: सियान
23: भूरा
9: मैजेंटा
11: पीला
HashMap कुंजियों पर सॉर्ट किया गया:
1: नेटवर्क
3: हरा
5: नीला
7: सियान
9: मैजेंटा
11: पीला
23: भूरा
उपर्युक्त कार्यक्रम में, हम देखते हैं कि एक बार हैशमैप को परिभाषित करने और मूल्यों के साथ आबाद होने के बाद, हम इस थैम्प से एक ट्रीमैप बनाते हैं। जैसे हैशमैप को ट्रेमैप में परिवर्तित किया जाता है, इसकी कुंजी स्वचालित रूप से सॉर्ट की जाती है। इस प्रकार जब हम इस treemap को प्रदर्शित करते हैं, तो हम कुंजियों पर क्रमबद्ध मानचित्र प्राप्त करते हैं।
मानों तक हैशपॉइंट को क्रमबद्ध करें
मानों के अनुसार एक हाशप को छाँटने के लिए, हम सबसे पहले हैशमैप को एक लिंक्डलिस्ट में बदलते हैं। तब हम सूची को सॉर्ट करने के लिए तुलनित्र के साथ कलेक्शन.सोर्ट विधि का उपयोग करते हैं। यह सूची फिर हैशपॉप में बदल जाती है। फिर छांटे गए हाशपैप को मुद्रित किया जाता है।
import java.util.*; public class Main { public static void main(String() args) { //Create and initialize the HashMap HashMap colors_map = new HashMap(); colors_map.put(5, 'B'); colors_map.put(11, 'O'); colors_map.put(3, 'I'); colors_map.put(13, 'R'); colors_map.put(7, 'G'); colors_map.put(1, 'V'); colors_map.put(9, 'Y'); //print the HashMap using iterator after converting to set System.out.println('Unsorted HashMap:'); Set set = colors_map.entrySet(); Iterator iterator = set.iterator(); while(iterator.hasNext()) { Map.Entry map_entry = (Map.Entry)iterator.next(); System.out.print(map_entry.getKey() + ': '); System.out.println(map_entry.getValue()); } //call sortByValues method that returns a sorted Map. Map c_map = sortByValues(colors_map); System.out.println('HashMap sorted on values:'); //print the sorted HashMap Set set2 = c_map.entrySet(); Iterator iterator2 = set2.iterator(); while(iterator2.hasNext()) { Map.Entry map_entry2 = (Map.Entry)iterator2.next(); System.out.print(map_entry2.getKey() + ': '); System.out.println(map_entry2.getValue()); } } private static HashMap sortByValues(HashMap hash_map) { //create a LinkedList from HashMap List list = new LinkedList(hash_map.entrySet()); // use Collections.sort method with Comparator to sort the list Collections.sort(list, new Comparator() { public int compare(Object o1, Object o2) { return ((Comparable) ((Map.Entry) (o1)).getValue()) .compareTo(((Map.Entry) (o2)).getValue()); } }); //create a HashMap from linkedlist which preserves the order HashMap sortedHashMap = new LinkedHashMap(); for (Iterator it = list.iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry) it.next(); sortedHashMap.put(entry.getKey(), entry.getValue()); } return sortedHashMap; } }
आउटपुट:
अप्रकाशित हाशप:
1: वी
3: मैं
5: बी
7: जी
9: और
11: हे
13: आर
HashMap मूल्यों पर हल:
5: बी
7: जी
3: मैं
11: हे
13: आर
1: वी
9: और
जावा में समवर्ती हाशप
सामान्य HashMap में, हम रनटाइम पर तत्वों को संशोधित करने में सक्षम नहीं होंगे या जबकि पुनरावृत्ति का प्रदर्शन किया जा रहा है।
समवर्ती मानचित्र का कार्यान्वयन नीचे दिखाया गया है:
import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class Main { public static void main(String() args) { //declare and initialize ConcurrentHashMap Map cCMap = new ConcurrentHashMap(); cCMap.put('1', '10'); cCMap.put('2', '10'); cCMap.put('3', '10'); cCMap.put('4', '10'); cCMap.put('5', '10'); cCMap.put('6', '10'); //print the initial ConcurrentHashMap System.out.println('Initial ConcurrentHashMap: '+cCMap); //define the iterator over the keys of ConcurrentHashMap Iterator it = cCMap.keySet().iterator(); //change one of the keys using iterator while(it.hasNext()){ String key = it.next(); if(key.equals('3')) cCMap.put(key+'c_map', 'c_map'); } //print the changed ConcurrentHashMap System.out.println('
ConcurrentHashMap after iterator: '+cCMap); } }
आउटपुट:
प्रारंभिक समवर्ती हाशपा: {1 = 10, 2 = 10, 3 = 10, 4 = 10, 5 = 10, 6 = 6}।
समवर्ती हश्र के बाद पुनरावृत्ति: {1 = 10, 2 = 10, 3 = 10, 4 = 10, 5 = 10, 6 = 10, 3c_map = c_map}
ध्यान दें कि यदि हमने HashMap के साथ एक ही ऑपरेशन किया था, तो उसने ConcurrentModificationException को फेंक दिया होगा।
जावा मानचित्र बनाम हैशपॉप
जावा में मैप और हैशपेयर के बीच कुछ अंतरों को सारणीबद्ध करें।
नक्शा | हैश मैप |
---|---|
यह एक अमूर्त इंटरफ़ेस है। | मानचित्र इंटरफ़ेस का कार्यान्वयन है। |
इसकी कार्यक्षमता के लिए इंटरफ़ेस को अन्य वर्गों द्वारा लागू किया जाना चाहिए। | एक ठोस वर्ग है और कार्यक्षमता प्राप्त करने के लिए वर्ग ऑब्जेक्ट बनाए जा सकते हैं। |
ट्री मैप जैसे मानचित्र इंटरफ़ेस कार्यान्वयन शून्य मानों की अनुमति नहीं देता है। | शून्य मान और कुंजियाँ देता है। |
ट्री मैप डुप्लिकेट मानों की अनुमति नहीं देता है। | इसमें डुप्लिकेट मान हो सकते हैं। |
वस्तुओं का एक प्राकृतिक क्रम बनाए रखा जाता है। | हाशपैप में कोई इनपुट ऑर्डर नहीं रखा गया है। |
बार बार पूछे जाने वाले प्रश्न
क्यू # 1) जावा में हाशप का उपयोग क्यों किया जाता है?
उत्तर: HashMap कुंजी मूल्य जोड़े का संग्रह किया जा रहा है अकेले कुंजी के आधार पर डेटा की खोज में मदद करता है। साथ ही यह हैशिंग तकनीक का उपयोग करता है, यह डेटा की एक कुशल खोज प्रदान करता है।
क्यू # 2)आप हैश मैप कैसे बनाते हैं?
उत्तर: Jash.util पैकेज के ’HashMap’ वर्ग को तत्काल बनाकर एक HashMap बनाया जा सकता है। प्रकार पूर्णांक की कुंजियों के साथ एक हैश मैप और प्रकार स्ट्रिंग के मान निम्न प्रकार बनाए जा सकते हैं:
HashMap myMap= new HashMap();
क्यू # 3)क्या HashMap जावा में आदेश दिया गया है?
उत्तर: नहीं, जावा में HashMap का आदेश नहीं दिया गया है। यह जावा में उस उद्देश्य के लिए उपयोग नहीं किया जाता है, लेकिन कुंजी-मूल्य जोड़े में तत्वों को संग्रहीत करने के लिए उपयोग किया जाता है।
क्यू # 4)क्या हाशप थ्रेड सुरक्षित है?
उत्तर: नहीं, जावा में हैशपॉप थ्रेड-सुरक्षित नहीं है।
क्यू # 5)कौन सा तेज़ हैशमैप या समवर्ती हाशपेज़?
उत्तर: HashMap ConcurrentHashMap की तुलना में तेज़ है। कारण यह है कि हाशप आमतौर पर केवल एक ही धागे पर काम करता है, इस प्रकार इसका प्रदर्शन अच्छा है। समवर्ती हाशप, हालांकि, जैसा कि नाम से पता चलता है, समवर्ती है और एक साथ कई थ्रेड पर काम कर सकता है।
निष्कर्ष
इस ट्यूटोरियल में, हमने HashMap की एक और भिन्नता के साथ HashMap की कार्यप्रणाली को समझा, जिसे ConcurrentHashMap कहा जाता है। हमने HashMap के निर्माणकर्ताओं, विधियों और उदाहरणों को देखा है। हमने इसके उदाहरण के साथ साथ समवर्ती हाशपा पर भी चर्चा की।
हमारे आगामी ट्यूटोरियल में, हम जावा कलेक्शंस के बारे में अधिक जानेंगे।
=> जावा प्रशिक्षण ट्यूटोरियल के ए-जेड को देखने के लिए यहां देखें।
अनुशंसित पाठ
- LinkedHashMap जावा में - LinkedHashMap उदाहरण और कार्यान्वयन
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल
- जावा में ट्री मैप - जावा ट्रीपैप उदाहरणों के साथ ट्यूटोरियल
- जावा वेक्टर क्या है | उदाहरणों के साथ जावा वेक्टर क्लास ट्यूटोरियल
- जावा स्ट्रिंग में () विधि ट्यूटोरियल विथ उदाहरण हैं
- जावा में एक ऐरे को कैसे सॉर्ट करें - उदाहरणों के साथ ट्यूटोरियल
- जावा में दांतेदार सरणी - उदाहरणों के साथ ट्यूटोरियल
- उदाहरण के साथ जावा स्कैनर क्लास ट्यूटोरियल