इस ट्यूटोरियल में, हम उदाहरणों की मदद से जावा लिंक्डहाशप क्लास और इसके संचालन के बारे में जानेंगे।
LinkedHashMap
जावा संग्रह ढांचे का वर्ग मानचित्र इंटरफ़ेस की हैश तालिका और लिंक्ड सूची कार्यान्वयन प्रदान करता है।
LinkedHashMap
इंटरफ़ेस एक हैश तालिका में उसकी प्रविष्टियों स्टोर करने के लिए HashMap वर्ग फैली हुई है। यह आंतरिक रूप से अपनी प्रविष्टियों के क्रम में सभी प्रविष्टियों में से एक दोहरी-लिंक की गई सूची को बनाए रखता है।
एक LinkedHashMap बनाना
लिंक किए गए हैशमैप बनाने के लिए, हमें java.util.LinkedHashMap
पहले पैकेज को आयात करना होगा । एक बार जब हम पैकेज आयात कर लेते हैं, तो यहां हम जावा में लिंक किए गए हैशमैप कैसे बना सकते हैं।
// LinkedHashMap with initial capacity 8 and load factor 0.6 LinkedHashMap numbers = new LinkedHashMap(8, 0.6f);
उपरोक्त कोड में, हमने एक लिंक हैशमैप नाम संख्याएँ बनाई हैं।
यहाँ,
- कुंजी - मानचित्र में प्रत्येक तत्व (मूल्य) को जोड़ने के लिए उपयोग किया जाने वाला एक विशिष्ट पहचानकर्ता
- मूल्य - एक नक्शे में कुंजियों से जुड़े तत्व
भाग को नोटिस करें new LinkedHashMap(8, 0.6)
। यहां, पहला पैरामीटर क्षमता है और दूसरा पैरामीटर लोडफैक्टर है ।
- क्षमता - इस लिंक किए गए हैशमैप की क्षमता 8. है, यह 8 प्रविष्टियों को संग्रहीत कर सकता है।
- loadFactor - इस लिंक किए गए हैशमैप का भार कारक 0.6 है। इसका मतलब है, जब भी हमारा हैश मैप 60% से भरा जाता है, तो प्रविष्टियां मूल हैश तालिका के आकार के दोगुने के एक नए हैश तालिका में ले जाया जाता है।
डिफ़ॉल्ट क्षमता और लोड कारक
इसकी क्षमता और भार कारक को परिभाषित किए बिना एक लिंक किए गए हैशमैप बनाना संभव है। उदाहरण के लिए,
//LinkedHashMap with default capacity and load factor LinkedHashMap numbers1 = new LinkedHashMap();
डिफ़ॉल्ट रूप से,
- लिंक किए गए हैशमैप की क्षमता 16 होगी
- लोड फैक्टर 0.75 होगा
नोट : LinkedHashMap
वर्ग हमें इसकी प्रविष्टियों के क्रम को परिभाषित करने की भी अनुमति देता है। उदाहरण के लिए
// LinkedHashMap with specified order LinkedHashMap numbers2 = new LinkedHashMap(capacity, loadFactor, accessOrder);
यहाँ, accessOrder एक बूलियन मूल्य है। इसका डिफ़ॉल्ट मान है false
। इस मामले में लिंक किए गए हैशमाप में प्रविष्टियां उनके सम्मिलन क्रम के आधार पर आदेशित की जाती हैं।
हालाँकि, यदि true
इसे एक्सेसऑर्डर के रूप में पारित किया जाता है , तो लिंक किए गए हैशमैप में प्रविष्टियों को कम से कम-हाल ही में सबसे हाल ही में एक्सेस किए जाने के आदेश दिए जाएंगे।
अन्य मानचित्रों से LinkedHashMap बनाना
यहां बताया गया है कि हम अन्य मानचित्रों के सभी तत्वों से जुड़े एक हैशमैप कैसे बना सकते हैं।
import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( // Creating a LinkedHashMap of even numbers LinkedHashMap evenNumbers = new LinkedHashMap(); evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("LinkedHashMap1: " + evenNumbers); // Creating a LinkedHashMap from other LinkedHashMap LinkedHashMap numbers = new LinkedHashMap(evenNumbers); numbers.put("Three", 3); System.out.println("LinkedHashMap2: " + numbers); ) )
आउटपुट
लिंक्डहाशमैप 1: (दो = 2, चार = 4)
LinkedHashMap की विधियाँ
LinkedHashMap
वर्ग तरीकों कि नक्शे पर हमारे लिए विभिन्न कार्य करने की अनुमति प्रदान करता है।
LinkedHashMap पर तत्व सम्मिलित करें
put()
- नक्शे में निर्दिष्ट कुंजी / मूल्य मानचित्रण सम्मिलित करता हैputAll()
- इस नक्शे के लिए निर्दिष्ट नक्शे से सभी प्रविष्टियों को सम्मिलित करता हैputIfAbsent()
- यदि मानचित्र में निर्दिष्ट कुंजी मौजूद नहीं है तो मानचित्र में निर्दिष्ट कुंजी / मान मानचित्रण सम्मिलित करता है
उदाहरण के लिए,
import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( // Creating LinkedHashMap of even numbers LinkedHashMap evenNumbers = new LinkedHashMap(); // Using put() evenNumbers.put("Two", 2); evenNumbers.put("Four", 4); System.out.println("Original LinkedHashMap: " + evenNumbers); // Using putIfAbsent() evenNumbers.putIfAbsent("Six", 6); System.out.println("Updated LinkedHashMap(): " + evenNumbers); //Creating LinkedHashMap of numbers LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); // Using putAll() numbers.putAll(evenNumbers); System.out.println("New LinkedHashMap: " + numbers); ) )
आउटपुट
मूल लिंक्डहाशमैप: (दो = 2, चार = 4) अद्यतित लिंक्डशैप
LinkedHashMap तत्वों तक पहुँचें
1. प्रविष्टि का उपयोग करना (), कीसेट () और मान ()
entrySet()
- नक्शे के सभी कुंजी / मान मानचित्रण का एक सेट लौटाता हैkeySet()
- नक्शे की सभी चाबियों का एक सेट देता हैvalues()
- नक्शे के सभी मूल्यों का एक सेट देता है
उदाहरण के लिए,
import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("LinkedHashMap: " + numbers); // Using entrySet() System.out.println("Key/Value mappings: " + numbers.entrySet()); // Using keySet() System.out.println("Keys: " + numbers.keySet()); // Using values() System.out.println("Values: " + numbers.values()); ) )
आउटपुट
LinkedHashMap: (One=1, Two=2, Three=3) Key/Value mappings: (One=1, Two=2, Three=3) Keys: (One, Two, Three) Values: (1, 2, 3)
2. Using get() and getOrDefault()
get()
- Returns the value associated with the specified key. If the key is not found, it returnsnull
.getOrDefault()
- Returns the value associated with the specified key. If the key is not found, it returns the specified default value.
For example,
import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("LinkedHashMap: " + numbers); // Using get() int value1 = numbers.get("Three"); System.out.println("Returned Number: " + value1); // Using getOrDefault() int value2 = numbers.getOrDefault("Five", 5); System.out.println("Returned Number: " + value2); ) )
Output
LinkedHashMap: (One=1, Two=2, Three=3) Returned Number: 3 Returned Number: 5
Removed LinkedHashMap Elements
remove(key)
- returns and removes the entry associated with the specified key from the mapremove(key, value)
- removes the entry from the map only if the specified key mapped to be the specified value and return a boolean value
For example,
import java.util.LinkedHashMap; class Main ( public static void main(String() args) ( LinkedHashMap numbers = new LinkedHashMap(); numbers.put("One", 1); numbers.put("Two", 2); numbers.put("Three", 3); System.out.println("LinkedHashMap: " + numbers); // remove method with single parameter int value = numbers.remove("Two"); System.out.println("Removed value: " + value); // remove method with two parameters boolean result = numbers.remove("Three", 3); System.out.println("Is the entry Three removed? " + result); System.out.println("Updated LinkedHashMap: " + numbers); ) )
Output
LinkedHashMap: (One=1, Two=2, Three=3) Removed value: 2 Is the entry (Three=3) removed? True Updated LinkedHashMap: (One=1)
LinkedHashMap के अन्य तरीके
तरीका | विवरण |
---|---|
clear() | नक्शे से सभी प्रविष्टियाँ निकालता है |
containsKey() | जाँचता है कि क्या मानचित्र में निर्दिष्ट कुंजी है और एक बूलियन मान देता है |
containsValue() | जाँचता है कि क्या मानचित्र में निर्दिष्ट मान है और बूलियन मान लौटाता है |
size() | नक्शे का आकार लौटाता है |
isEmpty() | जाँच करता है कि नक्शा खाली है और बूलियन मान लौटाता है |
लिंक्ड हैशपेज़ बनाम। हैश मैप
दोनों इंटरफ़ेस LinkedHashMap
को HashMap
लागू करता Map
है। हालांकि, उनके बीच कुछ अंतर मौजूद हैं।
LinkedHashMap
आंतरिक रूप से एक डबल-लिंक्ड सूची को बनाए रखता है। इसके कारण, यह अपने तत्वों के सम्मिलन क्रम को बनाए रखता है।LinkedHashMap
वर्ग से अधिक संग्रहण की आवश्यकता हैHashMap
। ऐसा इसलिए है क्योंकिLinkedHashMap
आंतरिक रूप से लिंक की गई सूचियों को बनाए रखता है।- के प्रदर्शन की
LinkedHashMap
तुलना में धीमी हैHashMap
।