linkedhashmap java linkedhashmap example implementation
यह ट्यूटोरियल Java में LinkedHashMap उदाहरण और तरीके, जावा में कार्यान्वयन, LinkedHashMap बनाम HashMap सहित सभी के बारे में बताता है।
Java में LinkedHashMap एक कार्यान्वयन है जो HashTable और LinkedList कार्यान्वयन को जोड़ती है। यह मैप इंटरफेस को लागू करता है। LinkedHashMap के प्रमुख-मूल्य जोड़े में पुनरावृत्ति का एक अनुमान लगाने योग्य क्रम है।
मैप इंटरफेस के अलावा, लिंक्डहाशपैप भी हाशप क्लास का विस्तार करता है।
=> सभी के लिए जावा प्रशिक्षण श्रृंखला देखने के लिए यहां जाएं।
खुला स्रोत बाकी एपीआई परीक्षण उपकरण
आप क्या सीखेंगे:
LinkedHashMap जावा में
LinkedHashMap की कुछ मुख्य विशेषताएं हैं:
- इसमें कुंजी-आधारित मान शामिल हैं।
- कुंजी-मूल्य जोड़े के सम्मिलन के आदेश को बनाए रखता है।
- यह डुप्लिकेट की अनुमति नहीं देता है, इसमें अद्वितीय तत्व हैं।
- इसमें एक सिंगल नल कुंजी हो सकती है। लेकिन यह कई अशक्त मूल्यों की अनुमति देता है।
- Java LinkedHashMap सिंक्रनाइज़ नहीं है।
LinkedHashMap की घोषणा
Java में LinkedHashMap वर्ग java.util पैकेज का एक हिस्सा है।
जावा में इस वर्ग की सामान्य घोषणा इस प्रकार है:
public class LinkedHashMap extends HashMap implements Map
यहाँ K => मानचित्र में कुंजियों का प्रकार।
V => मानों का प्रकार कुंजियों से मैप किया गया।
LinkedHashMap का वर्ग पदानुक्रम नीचे दिखाया गया है:
जैसा कि ऊपर चित्र में दिखाया गया है, LinkedHashMap ने HashMap और AbstractMap वर्ग विरासत में मिला है और मानचित्र इंटरफ़ेस को लागू करता है।
LinkedHashMap उदाहरण
नीचे दिया गया एक सरल उदाहरण है।
import java.util.*; class Main{ public static void main(String args()){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
आउटपुट:
LinkedHashMap की सामग्री:
1 एक
2 दो
3 तीन
4 चार
5 FIVE
कंस्ट्रक्टर और तरीके
आइए लिंक्डहाशपैप वर्ग द्वारा प्रदान किए गए कंस्ट्रक्टरों और विधियों पर चर्चा करें। सबसे पहले, हम निर्माण के बाद के तरीकों पर चर्चा करेंगे।
विंडोज़ 10 के लिए मुफ्त जंक क्लीनर
कंस्ट्रक्टर्स
कंस्ट्रक्टर प्रोटोटाइप | विवरण | |
---|---|---|
चाबीगुछा | सेट कीसेट () | नक्शे में कुंजियों का सेट लौटाता है। |
LinkedHashMap() | LinkedHashMap के लिए डिफ़ॉल्ट निर्माता। | |
लिंक्डहाशपैप (इंट क्षमता) | एक दी गई क्षमता के साथ एक लिंक्डहाशपॉइंट ऑब्जेक्ट बनाता है। | |
लिंक्डहाशपैप (अंतर क्षमता, फ्लोट लोडफैक्टर) | दी गई क्षमता और लोडफ़ैक्टर के साथ एक लिंक्डहाशपॉइंट ऑब्जेक्ट बनाता है। | |
लिंक्डहाशपैप (इंटेन क्षमता, फ्लोट लोडफैक्टर, बूलियन एक्सेसऑर्डर) | किसी दिए गए क्षमता और लोडफ़ैक्टर के साथ एक लिंक्डहाशपॉइंट ऑब्जेक्ट बनाता है। इसके अलावा, ऑर्डरिंग मोड (एक्सेसऑर्डर) निर्दिष्ट है। | |
लिंक्डहाशपैप (मानचित्र एम) | एक LinkedHashMap ऑब्जेक्ट बनाता है और इसे मैप के उन मानों के साथ आरम्भ करता है, जो एक तर्क के रूप में पारित किए गए हैं। |
तरीकों
तरीका | विधि प्रोटोटाइप | विवरण |
---|---|---|
प्राप्त | V मिलता है (ऑब्जेक्ट कुंजी) | दिए गए कुंजी के लिए मान लौटाता है। |
स्पष्ट | शून्य स्पष्ट () | नक्शे में सभी कुंजी-मूल्य जोड़े को साफ़ करता है। |
सम्मिलित है | बूलियन समरूपता (वस्तु मान) | चेक करता है कि मानचित्र में दिए गए मान में मैप की गई एक या अधिक कुंजियाँ हैं या नहीं। सही है अगर हाँ |
एंट्रीसेट | सेट | नक्शे में प्रविष्टियों का सेट लौटाता है। |
प्रत्येक के लिए | शून्य forEach (BiConsumer कार्रवाई) | नक्शे में सभी प्रविष्टियों के लिए दी गई कार्रवाई निष्पादित करता है। |
getOrDefault | V getOrDefault (ऑब्जेक्ट कुंजी, V defaultValue) | कुंजी को मैप किया गया मान लौटाता है। यदि कोई मान मैप नहीं किया गया है, तो डिफ़ॉल्ट लौटाया जाता है। |
removeEldestEntry | संरक्षित बूलियन हटाने के लिए सबसे बड़ा नक्शा (मानचित्र। सबसे बड़ा) | नक्शे में सबसे बड़ी प्रविष्टि को हटाता है और हटाने पर सच हो जाता है। |
सबको बदली करें | शून्य रिप्लेसमेंट (बायफ़ंक्शन फ़ंक्शन) | प्रत्येक प्रविष्टि पर दिए गए फ़ंक्शन को आमंत्रित करता है और फ़ंक्शन के परिणाम को मानों के साथ बदलता है। |
मूल्यों | संग्रह मान () | मानचित्र में मानों का संग्रह लौटाता है। |
जावा में कार्यान्वयन
नीचे दिए गए जावा प्रोग्राम ऊपर चर्चा की गई विधियों का प्रदर्शन करके लिंक्डहाशपैप के कार्यान्वयन को दर्शाता है।
import java.util.*; public class Main { public static void main(String a()) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
आउटपुट:
ओरिजिनल लिंक्डहाशमैप: {एक = लाल, दो = हरा, तीन = नीला}
लिंक्डहाशपैप _ color_map 'खाली ?: गलत
मानचित्र का आकार: ३
मूल्य के लिए कुंजी = ’एक ': लाल
color_map में कुंजी = ’दो 'है: सच
color_map में 'ree' मान होता है: गलत
एलिमेंट ‘एक’ हटाएं: लाल
अद्यतित रंग_मैप: {दो = हरा, तीन = नीला}
इस कार्यक्रम में, हम एक रंगीन मानचित्र घोषित करते हैं और इसे आरंभ करते हैं। फिर हम परिणाम प्राप्त करने के लिए ऊपर चर्चा की गई विभिन्न विधियों का उपयोग करते हैं।
लिंक्डहाशपॅप बनाम हाशपॅप
LinkedHashMap | हैश मैप | ||
---|---|---|---|
बुनियादी संचालन की समय जटिलता | ओ (1) | ओ (1) | ओ (1) |
इम्प्लाइज ने नक्शे मंगवाए। | इम्प्लाइज़ अनऑर्डिनेटेड मैप्स | ||
डबल लिंक वाली बाल्टी की सूची का उपयोग करता है। | हैश टेबल का उपयोग करता है। | ||
तत्वों की पुनरावृति करते समय क्रम बनाए रखता है। | पुनरावृति होने पर क्रम बनाए नहीं रखता है। | ||
अधिक स्मृति की आवश्यकता है। | LinkedHashMap की तुलना में कम मेमोरी की आवश्यकता होती है। | ||
बुनियादी संचालन जैसे जोड़ना, हटाना, खोजना आदि धीमा हैं। | बुनियादी संचालन जैसे जोड़ना, खोज निकालना तेज हैं। |
हैशपॉप बनाम ट्रीपॉपर बनाम लिंक्डहाशमैप
आइए अब तीन मानचित्र कार्यान्वयन की तुलना करें। HashMap, TreeMap, और LinkedHashMap।
निम्न तालिका तुलना / अंतर दिखाती है।
तुलना पैरामीटर | हैश मैप | LinkedHashMap | ट्री-मैप |
---|---|---|---|
इंटरफेस | नक्शा | नक्शा | मानचित्र, क्रमबद्ध मानचित्र, नौगम्य मानचित्र |
डेटा संरचना | बाल्टी की सूची | डबल लिंक-बाल्टी की सूची | लाल-काला पेड़ |
Iteration ऑर्डर | कोई आदेश नहीं बनाए रखा। | प्रविष्टि क्रम के अनुसार क्रमबद्ध | तत्वों के प्राकृतिक क्रम के अनुसार क्रमबद्ध |
नल कीज | अनुमति दी जाती है | अनुमति दी जाती है | अनुमति नहीं |
तादात्म्य | सिंक्रनाइज़ नहीं है | सिंक्रनाइज़ नहीं है | सिंक्रनाइज़ नहीं है |
कुंजी की आवश्यकता | समान () और हैशकोड () विधियों को अधिलेखित करने की आवश्यकता है | समान () और हैशकोड () विधियों को अधिलेखित करने की आवश्यकता है | प्राकृतिक आदेश बनाए रखा जाता है या तुलनित्र को आपूर्ति करने की आवश्यकता होती है |
बार बार पूछे जाने वाले प्रश्न
Q # 1) Java में LinkedHashMap क्या है?
उत्तर: Java में LinkedHashMap को HashTable और LinkedList के संयोजन के रूप में लागू किया गया है। यह मैप इंटरफेस को लागू करता है। इसका एक अनुमान लगाने योग्य क्रम है। यह आंतरिक रूप से प्रविष्टियों के लिए एक डबल-लिंक की गई सूची का उपयोग करता है।
क्यू # 2)LinkedHashMap जावा में कैसे काम करता है?
उत्तर: यह HashMap के समान है, लेकिन प्रविष्टि के क्रम में HashMap से अलग है जो LinkedHashMap रखता है। LinkedHashMap में तत्वों को उसी तरह संग्रहीत किया जाता है जैसे वे डेटा संरचना में दर्ज किए जाते हैं।
डिफ़ॉल्ट गेटवे उपलब्ध नहीं है विंडोज़ 10 फिक्स
क्यू # 3)मैं लिंक्डहैश मैप के माध्यम से कैसे लूप कर सकता हूं?
उत्तर: हम एक Itter का उपयोग करके LinkedHashMap के माध्यम से लूप कर सकते हैं।
निम्नलिखित वे चरण हैं जिनका उपयोग कर हम LinkedHashMap के माध्यम से पुनरावृति का उपयोग कर सकते हैं:
- एक नया LinkedHashMap ऑब्जेक्ट बनाएं।
- मानचित्र में मुख्य-मूल्य जोड़े सम्मिलित करने के लिए पुट एपीआई पद्धति का उपयोग करें।
- कॉल एंट्रीसेट () एपीआई विधि मानचित्र में कुंजी-मूल्य जोड़े का एक सेट प्राप्त करने के लिए।
- GetKey () और getValue () एपीआई विधियों का उपयोग करके प्रत्येक कुंजी-मूल्य जोड़ी को पुनः प्राप्त करने के लिए इस सेट पर पुनरावृत्त को सेट करें।
क्यू # 4)Java में LinkedHashMap का उपयोग क्या है?
उत्तर: Java में LinkedHashMap का मुख्य उपयोग प्रविष्टि क्रम को संरक्षित करने के लिए इसका उपयोग करना है। इसका उपयोग एक्सेस ऑर्डर को संरक्षित करने के लिए भी किया जा सकता है, जिसके उपयोग से चाबियाँ पहुंचती हैं। चूंकि यह HashMap की तुलना में तेज़ है, इसलिए LinkedHashMap का उपयोग HashMap के स्थान पर किया जा सकता है, जहां प्रदर्शन महत्वपूर्ण है।
क्यू # 5)क्या HashMap LinkedHashMap की तुलना में तेज़ है?
उत्तर: दोनों ही प्रदर्शन में समान हैं। जब LinkedHashMap की तुलना में HashMap को कम मेमोरी की आवश्यकता होती है क्योंकि HashMap एक्सेसिंग ऑर्डर को बनाए नहीं रखता है। इस प्रकार तुलनात्मक रूप से हाशपैप तेज है।
निष्कर्ष
इस ट्यूटोरियल में, हमने Java में LinkedHashMap पर चर्चा की है। हमने कक्षा घोषणा, वर्ग पदानुक्रम, निर्माणकर्ताओं और विधियों के बारे में विवरण देखा है।
हमने LinkedHashMap और HashMap के बीच प्राथमिक अंतर भी सीखा है। हमने LinkedHashMap, HashMap, और TreeMap के बीच 3-तरफा अंतर पर भी चर्चा की।
हमारे आगामी ट्यूटोरियल में, हम जावा कलेक्शन फ्रेमवर्क पर अधिक विषयों की खोज करेंगे।
=> यहाँ सरल जावा प्रशिक्षण श्रृंखला देखें।
अनुशंसित पाठ
- उदाहरणों के साथ जावा परावर्तन ट्यूटोरियल
- शुरुआती के लिए गहराई से ग्रहण ट्यूटोरियल
- एक जावा हैशटेबल क्या है - हैशटेबल कार्यान्वयन और उदाहरण
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल
- जावा में एक्सेस संशोधक - उदाहरण के साथ ट्यूटोरियल
- Java SWING Tutorial: कंटेनर, कंपोनेंट्स एंड इवेंट हैंडलिंग
- जावा स्ट्रिंग में () उदाहरण के साथ विधि ट्यूटोरियल शामिल हैं
- स्ट्रिंग स्ट्रिंग बफर और स्ट्रिंग बिल्डर ट्यूटोरियल के साथ जावा स्ट्रिंग