इस ट्यूटोरियल में, हम Java ConcurrentMap इंटरफ़ेस और इसके तरीकों के बारे में जानेंगे।
ConcurrentMap
जावा संग्रह ढांचे का इंटरफ़ेस एक थ्रेड-सुरक्षित मानचित्र प्रदान करता है। यही है, कई थ्रेड्स मानचित्र में प्रविष्टियों की स्थिरता को प्रभावित किए बिना एक बार में मानचित्र तक पहुंच सकते हैं।
ConcurrentMap
एक सिंक्रनाइज़ मैप के रूप में जाना जाता है।
यह मैप इंटरफ़ेस का विस्तार करता है।
वर्ग जो समवर्ती मानचित्र को लागू करता है
चूंकि ConcurrentMap
एक इंटरफ़ेस है, हम इससे ऑब्जेक्ट नहीं बना सकते हैं।
ConcurrentMap
इंटरफ़ेस की कार्यक्षमता का उपयोग करने के लिए , हमें उस वर्ग का उपयोग करने की आवश्यकता है ConcurrentHashMap
जो इसे लागू करता है।
समवर्ती मानचित्र का उपयोग कैसे करें?
उपयोग करने के लिए ConcurrentMap
, हमें java.util.concurrent.ConcurrentMap
पहले पैकेज को आयात करना होगा । एक बार जब हम पैकेज आयात करते हैं, तो यहां बताया गया है कि हम एक समवर्ती नक्शा कैसे बना सकते हैं।
// ConcurrentMap implementation by ConcurrentHashMap CocurrentMap numbers = new ConcurrentHashMap();
उपरोक्त कोड में, हमने संख्याओं के नाम का समवर्ती नक्शा बनाया है।
यहाँ,
- कुंजी - मानचित्र में प्रत्येक तत्व (मूल्य) को जोड़ने के लिए उपयोग किया जाने वाला एक विशिष्ट पहचानकर्ता
- मूल्य - एक नक्शे में कुंजियों से जुड़े तत्व
समवर्ती नक्शे के तरीके
ConcurrentMap
इंटरफेस के सभी तरीके शामिल हैं Map
इंटरफ़ेस। इसका कारण यह है कि Map
इंटरफ़ेस का सुपर इंटरफ़ेस है ConcurrentMap
।
उन सभी तरीकों के अलावा, यहां ConcurrentMap
इंटरफेस के लिए विशिष्ट तरीके हैं ।
- putIfAbsent () - निर्दिष्ट कुंजी / मान को मैप में सम्मिलित करता है यदि निर्दिष्ट कुंजी पहले से ही किसी भी मूल्य से संबद्ध नहीं है।
- कंप्यूट () - निर्दिष्ट कुंजी और उसके पहले मैप किए गए मूल्य के लिए एक प्रविष्टि (कुंजी / मूल्य मैपिंग) की गणना करता है ।
- computeIfAbsent () - यदि किसी मूल्य के लिए पहले से मैप नहीं किया गया है तो निर्दिष्ट कुंजी के लिए निर्दिष्ट फ़ंक्शन का उपयोग करके एक मान की गणना करता है।
- computeIfPresent () - निर्दिष्ट कुंजी के लिए एक नई प्रविष्टि (कुंजी / मान मैपिंग) की गणना करता है यदि कुंजी पहले से निर्दिष्ट मान के साथ मैप की गई है।
- forEach () - मानचित्र की सभी प्रविष्टियों तक पहुँचें और निर्दिष्ट क्रियाएँ करें।
- मर्ज () - निर्दिष्ट कुंजी के पुराने मूल्य के साथ नए निर्दिष्ट मान को जोड़ता है यदि कुंजी पहले से ही एक निश्चित मूल्य पर मैप की जाती है। यदि कुंजी पहले से मैप नहीं की गई है, तो विधि केवल निर्दिष्ट मान को हमारी कुंजी में जोड़ती है।
अधिक जानने के लिए, Java ConcurrentMap (आधिकारिक जावा प्रलेखन) पर जाएं।
ConcurrentHashMap में समवर्ती मानचित्र का कार्यान्वयन
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentHashMap; class Main ( public static void main(String() args) ( // Creating ConcurrentMap using ConcurrentHashMap ConcurrentMap numbers = new ConcurrentHashMap(); // Insert elements to map numbers.put("Two", 2); numbers.put("One", 1); numbers.put("Three", 3); System.out.println("ConcurrentMap: " + numbers); // Access the value of specified key int value = numbers.get("One"); System.out.println("Accessed Value: " + value); // Remove the value of specified key int removedValue = numbers.remove("Two"); System.out.println("Removed Value: " + removedValue); ) )
आउटपुट
समवर्ती मानचित्र: (एक = 1, दो = 2, तीन = 3) अभिगमन मूल्य: 1 निकाला गया मूल्य: 2
के बारे में अधिक जानने के लिए ConcurrentHashMap
, Java ConcurrentHashMap पर जाएं।