Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

คลาส EnumMap ใน Java


คลาส java.util.EnumMap เป็นการนำ Map มาใช้เฉพาะสำหรับใช้กับคีย์ enum ต่อไปนี้เป็นประเด็นสำคัญเกี่ยวกับ EnumMap -

  • คีย์ทั้งหมดในแผนที่ enum ต้องมาจากประเภท enum เดียวที่ระบุไว้ เมื่อสร้างแผนที่โดยชัดแจ้งหรือโดยปริยาย

  • แผนที่ Enum ได้รับการดูแลในลำดับตามธรรมชาติของคีย์

  • EnumMap ไม่ได้ซิงโครไนซ์ หากเธรดหลายเธรดเข้าถึงแม็พ enum พร้อมกัน และเธรดอย่างน้อยหนึ่งเธรดแก้ไขแม็พ ก็ควรจะซิงโครไนซ์กับภายนอก

ต่อไปนี้เป็นตัวสร้างของคลาส EnumMap -

Sr.No ตัวสร้าง &คำอธิบาย
1 EnumMap(ประเภทคีย์ คลาส)
ตัวสร้างนี้สร้างแม็พ enum ว่างด้วยประเภทคีย์ที่ระบุ
2 EnumMap(EnumMap ม.)
ตัวสร้างนี้สร้างแผนที่ enum ที่มีประเภทคีย์เดียวกันกับแผนที่ enum ที่ระบุ ในขั้นต้นมีการแมปเดียวกัน (ถ้ามี)
3 EnumMap(Map ม.)
ตัวสร้างนี้สร้างแผนที่ enum เริ่มต้นจากแผนที่ที่ระบุ

ตัวอย่าง

เรามาดูตัวอย่างกัน −

import java.util.EnumMap;
public class Demo {
   // create an enum
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };
   public static void main(String[] args) {
      EnumMap<Numbers, String> map1 = new EnumMap<Numbers, String>(Numbers.class);
      EnumMap<Numbers, String> map2 = new EnumMap<Numbers, String>(Numbers.class);
      // associate values in map1
      map1.put(Numbers.ONE, "1");
      map1.put(Numbers.TWO, "2");
      map1.put(Numbers.THREE, "3");
      map1.put(Numbers.FOUR, "4");
      // print the whole map
      System.out.println("map1:" + map1);
      // clone map1 to map2
      map2 = map1.clone();
      // print map2
      System.out.println("map2:" + map2);
   }
}

ผลลัพธ์

map1:{ONE=1, TWO=2, THREE=3, FOUR=4}
map2:{ONE=1, TWO=2, THREE=3, FOUR=4}

ตัวอย่าง

ให้เราดูตัวอย่างอื่นที่เราแสดงจำนวนการจับคู่คีย์-ค่าในแผนที่ -

import java.util.*;
public class EnumMapDemo {
   // create an enum
   public enum Numbers {
      ONE, TWO, THREE, FOUR, FIVE
   };
   public static void main(String[] args) {
      EnumMap<Numbers, String> map = new EnumMap<Numbers, String>(Numbers.class);
      // assosiate values in map
      map.put(Numbers.ONE, "1");
      map.put(Numbers.TWO, "2");
      map.put(Numbers.THREE, "3");
      map.put(Numbers.FOUR, "4");
      // print the map
      System.out.println("Map: " + map);
      // print the number of mappings of this map
      System.out.println("Number of mappings:" + map.size());
      // remove value from Numbers.THREE
      map.put(Numbers.FIVE, "5");
      // print the new number of mappings of this map
      System.out.println("Number of mappings:" + map.size());
   }
}

ผลลัพธ์

Map: {ONE=1, TWO=2, THREE=3, FOUR=4}
Number of mappings:4
Number of mappings:5