คลาส 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