जावा EnumMap

इस ट्यूटोरियल में, हम उदाहरणों की मदद से Java EnumMap क्लास और उसके संचालन के बारे में जानेंगे।

EnumMapजावा संग्रह ढांचे का वर्ग एक एनम के तत्वों के लिए एक मानचित्र कार्यान्वयन प्रदान करता है।

में EnumMap, Enum तत्वों को कुंजी के रूप में उपयोग किया जाता है । यह मैप इंटरफेस को लागू करता है।

इससे पहले कि हम इसके बारे में जानें EnumMap, जावा एनम के बारे में जानना सुनिश्चित करें।

एक EnumMap बनाना

एनम मैप बनाने के लिए, हमें java.util.EnumMapपहले पैकेज को आयात करना होगा । एक बार जब हम पैकेज आयात करते हैं, तो यहां बताया गया है कि हम जावा में एनम मैप कैसे बना सकते हैं।

 enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) EnumMap sizes = new EnumMap(Size.class); 

उपरोक्त उदाहरण में, हमने आकार नाम का एक एनम मैप बनाया है।

यहाँ,

  • आकार - मानों के लिए नक्शे कि एनम की कुंजी
  • पूर्णांक - संबंधित कुंजी के साथ जुड़े एनम मानचित्र के मान

EnumMap के तरीके

EnumMapवर्ग तरीकों कि हमें enum नक्शे पर विभिन्न तत्वों करने की अनुमति प्रदान करता है।

EnumMap करने के लिए तत्वों को सम्मिलित करें

  • put() - एनम मैप में निर्दिष्ट कुंजी / मान मानचित्रण (प्रवेश) सम्मिलित करता है
  • putAll() - इस नक्शे में एक निर्दिष्ट नक्शे की सभी प्रविष्टियाँ सम्मिलित करता है

उदाहरण के लिए,

 import java.util.EnumMap; class Main ( enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) public static void main(String() args) ( // Creating an EnumMap of the Size enum EnumMap sizes1 = new EnumMap(Size.class); // Using the put() Method sizes1.put(Size.SMALL, 28); sizes1.put(Size.MEDIUM, 32); System.out.println("EnumMap1: " + sizes1); EnumMap sizes2 = new EnumMap(Size.class); // Using the putAll() Method sizes2.putAll(sizes1); sizes2.put(Size.LARGE, 36); System.out.println("EnumMap2: " + sizes2); ) ) 

आउटपुट

 EnumMap1: (SMALL = 28, MEDIUM = 32) EnumMap2: (SMALL = 28, MEDIUM = 32, LARGE = 36) 

उपरोक्त उदाहरण में, हमने putAll()एक एन्यूम मैप साइज़ 1 के सभी तत्वों को साइज़ 2 के एनम मैप में डालने के लिए विधि का उपयोग किया है ।

यह भी इस तरह के रूप में अन्य नक्शे से तत्वों को सम्मिलित करने के लिए संभव है HashMap, TreeMapआदि के लिए एक enum मानचित्र का उपयोग putAll()। हालाँकि, सभी नक्शे एक ही प्रकार के होने चाहिए।

प्रवेश EnumMap तत्व

1. प्रविष्टि का उपयोग करना (), कीसेट () और मान ()

  • entrySet() - एनम मैप के सभी कीज़ / वैल्यू मैपिंग (एंट्री) का एक सेट देता है
  • keySet() - एक enum मैप की सभी कीज का सेट देता है
  • values() - एक एनम मैप के सभी मूल्यों का एक सेट देता है

उदाहरण के लिए,

 import java.util.EnumMap; class Main ( enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) public static void main(String() args) ( // Creating an EnumMap of the Size enum EnumMap sizes = new EnumMap(Size.class); sizes.put(Size.SMALL, 28); sizes.put(Size.MEDIUM, 32); sizes.put(Size.LARGE, 36); sizes.put(Size.EXTRALARGE, 40); System.out.println("EnumMap: " + sizes); // Using the entrySet() Method System.out.println("Key/Value mappings: " + sizes.entrySet()); // Using the keySet() Method System.out.println("Keys: " + sizes.keySet()); // Using the values() Method System.out.println("Values: " + sizes.values()); ) ) 

आउटपुट

 EnumMap: (SMALL = 28, MEDIUM = 32, LARGE = 36, EXTRALARGE = 40) कुंजी / मान मैपिंग: (SMALL = 28, MEDIUM = 32, LARGE = 36, EXTRALARGE = 40) कुंजियाँ: (SMALL, MEDIUM, LARGE) EXTRALARGE) मान: (28, 32, 36, 40) 

2. प्राप्त () विधि का उपयोग करना

get()विधि निर्दिष्ट कुंजी से संबद्ध मान देता है। nullनिर्दिष्ट कुंजी नहीं मिलने पर यह वापस आ जाता है।

उदाहरण के लिए,

 import java.util.EnumMap; class Main ( enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) public static void main(String() args) ( // Creating an EnumMap of the Size enum EnumMap sizes = new EnumMap(Size.class); sizes.put(Size.SMALL, 28); sizes.put(Size.MEDIUM, 32); sizes.put(Size.LARGE, 36); sizes.put(Size.EXTRALARGE, 40); System.out.println("EnumMap: " + sizes); // Using the get() Method int value = sizes.get(Size.MEDIUM); System.out.println("Value of MEDIUM: " + value); ) ) 

आउटपुट

 EnumMap: (SMALL = 28, MEDIUM = 32, LARGE = 36, EXTRALARGE = 40) MEDIUM का मूल्य: 32 

EnumMap तत्व निकालें

  • remove(key) - रिटर्न और मानचित्र से निर्दिष्ट कुंजी के साथ जुड़े प्रविष्टि को हटाता है
  • remove(key, value) - मानचित्र से प्रवेश को केवल तभी हटाता है जब निर्दिष्ट कुंजी निर्दिष्ट मूल्य पर मैप की जाती है और बूलियन मान लौटाता है

उदाहरण के लिए,

 import java.util.EnumMap; class Main ( enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) public static void main(String() args) ( // Creating an EnumMap of the Size enum EnumMap sizes = new EnumMap(Size.class); sizes.put(Size.SMALL, 28); sizes.put(Size.MEDIUM, 32); sizes.put(Size.LARGE, 36); sizes.put(Size.EXTRALARGE, 40); System.out.println("EnumMap: " + sizes); // Using the remove() Method int value = sizes.remove(Size.MEDIUM); System.out.println("Removed Value: " + value); boolean result = sizes.remove(Size.SMALL, 28); System.out.println("Is the entry (SMALL=28) removed? " + result); System.out.println("Updated EnumMap: " + sizes); ) ) 

आउटपुट

EnumMap: (SMALL = 28, MEDIUM = 32, LARGE = 36, EXTRALARGE = 40) निकाला गया मान: 32 क्या प्रविष्टि (SMALL = 28) निकाली गई है? सही अपडेट किया गया EnumMap: (LARGE = 36, EXTRALARGE = 40)

EnumMap तत्वों को बदलें

  • replace(key, value) - नए मूल्य द्वारा निर्दिष्ट कुंजी के साथ जुड़े मूल्य को बदलता है
  • replace(key, old, new) - पुराने मान को नए मान से बदल देता है, यदि पुराना मान पहले से निर्दिष्ट कुंजी से जुड़ा हो
  • replaceAll(function) - निर्दिष्ट फ़ंक्शन के परिणाम के साथ नक्शे के प्रत्येक मूल्य को बदलता है
 import java.util.EnumMap; class Main ( enum Size ( SMALL, MEDIUM, LARGE, EXTRALARGE ) public static void main(String() args) ( // Creating an EnumMap of the Size enum EnumMap sizes = new EnumMap(Size.class); sizes.put(Size.SMALL, 28); sizes.put(Size.MEDIUM, 32); sizes.put(Size.LARGE, 36); sizes.put(Size.EXTRALARGE, 40); System.out.println("EnumMap: " + sizes); // Using the replace() Method sizes.replace(Size.MEDIUM, 30); sizes.replace(Size.LARGE, 36, 34); System.out.println("EnumMap using replace(): " + sizes); // Using the replaceAll() Method sizes.replaceAll((key, oldValue) -> oldValue + 3); System.out.println("EnumMap using replaceAll(): " + sizes); ) ) 

आउटपुट

 EnumMap: (SMALL = 28, MEDIUM = 32, LARGE = 36, EXTRALARGE = 40) EnumMap प्रतिस्थापन का उपयोग कर (): (SMALL = 28, MEDIUM = 30, LARGE = 34, EXTRALARGE = 40) EnumMap प्रतिस्थापन () का उपयोग कर: (SMALL) = 31, मेडम = 33, लार्ज = 37, एक्सट्रैजल = 43) 

उपरोक्त कार्यक्रम में, कथन पर ध्यान दें

 sizes.replaceAll((key, oldValue) -> oldValue + 3); 

यहां, विधि नक्शे की सभी प्रविष्टियों तक पहुंचती है। इसके बाद लैम्बडा एक्सप्रेशंस द्वारा प्रदान किए गए नए मूल्यों के साथ सभी मूल्यों को बदल देता है।

अन्य तरीके

तरीका विवरण
clone() की एक प्रति बनाता है EnumMap
containsKey() EnumMapनिर्दिष्ट कुंजी के लिए खोज करता है और एक बूलियन परिणाम देता है
containsValue() EnumMapनिर्दिष्ट मूल्य के लिए खोज करता है और एक बूलियन परिणाम देता है
size() का आकार लौटाता है EnumMap
clear() से सभी प्रविष्टियों को निकालता है EnumMap

EnumSet बनाम EnumMap

EnumSet और EnumMapवर्ग दोनों Enum मानों को संग्रहीत करने के लिए डेटा संरचना प्रदान करता है। हालांकि, उनके बीच कुछ प्रमुख अंतर मौजूद हैं।

  • Enum set is represented internally as a sequence of bits, whereas the enum map is represented internally as arrays.
  • Enum set is created using its predefined methods like allOf(), noneOf(), of(), etc. However, an enum map is created using its constructor.

Clonable and Serializable Interfaces

The EnumMap class also implements Cloneable and Serializable interfaces.

Cloneable Interface

It allows the EnumMap class to make a copy of instances of the class.

Serializable Interface

Whenever Java objects need to be transmitted over a network, objects need to be converted into bits or bytes. This is because Java objects cannot be transmitted over the network.

Serializableइंटरफेस की अनुमति देता है वर्गों श्रृंखलाबद्ध किया जाना है। इसका मतलब यह है कि लागू करने वाले वर्गों की वस्तुओं Serializableको बिट्स या बाइट्स में परिवर्तित किया जा सकता है।

दिलचस्प लेख...