Lớp EnumMap trong java là một cài đặt chuyên biệt để sử dụng với các enum keys. Nó kế thừa lớp Enum và AbstractMap.
Hierarchy của lớp EnumMap
Khai báo của lớp EnumMap
Dưới đây là khai báo của lớp java.util.EnumSet trong java
public class EnumMap<K extends Enum<K>,V> extends AbstractMap<K,V> implements Serializable, Cloneable
Trong đó:
- K: đây là kiểu key để lưu trữ.
- V: đây là kiểu giá trị được ánh xạ.
Ví dụ EnumMap trong Java
Ví dụ 1:
package vn.kienthuclaptrinh.collection; import java.util.EnumMap; import java.util.Map; public class EnumMapExample1 { /** * create an enum * * @author kienthuclaptrinh.net * @param args */ public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday }; /** * main * * @author kienthuclaptrinh.net * @param args */ public static void main(String[] args) { // create enum map EnumMap<Days, String> enumMap = new EnumMap<Days, String>(Days.class); // add element to map enumMap.put(Days.Monday, "1"); enumMap.put(Days.Tuesday, "2"); enumMap.put(Days.Wednesday, "3"); enumMap.put(Days.Thursday, "4"); enumMap.put(Days.Friday, "5"); // show map for (Map.Entry<Days, String> map : enumMap.entrySet()) { System.out.println(map.getKey() + " " + map.getValue()); } } }
Kết quả:
Monday 1 Tuesday 2 Wednesday 3 Thursday 4 Friday 5
Ví dụ 2: EnumMap với lớp Student
Lớp Student.java
package vn.kienthuclaptrinh.collection; /** * Student class * * @author kienthuclaptrinh.net */ public class Student implements Comparable<Student> { private String name; private int age; private String address; public Student() { } public Student(String name, int age, String address) { super(); this.name = name; this.age = age; this.address = address; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Student@name=" + name + ",age=" + age + ",address=" + address; } }
Lớp EnumMapExample2.java
package vn.kienthuclaptrinh.collection; import java.util.EnumMap; import java.util.Map; public class EnumMapExample2 { /** * create an enum * * @author kienthuclaptrinh.net */ public enum Key { One, Two, Three, Four }; /** * main * * @author kienthuclaptrinh.net * @param args */ public static void main(String args[]) { // init enumMap EnumMap<Key, Student> enumMap = new EnumMap<Key, Student>(Key.class); // add elements to enumMap enumMap.put(Key.One, new Student("A", 12, "Hanoi")); enumMap.put(Key.Two, new Student("B", 13, "Hanoi")); enumMap.put(Key.Three, new Student("C", 15, "Hanoi")); enumMap.put(Key.Four, new Student("D", 14, "Hanoi")); // show enumMap for (Map.Entry<Key, Student> map : enumMap.entrySet()) { System.out.println(map.getKey() + " " + map.getValue()); } } }
Kết quả:
One Student@name=A,age=12,address=Hanoi Two Student@name=B,age=13,address=Hanoi Three Student@name=C,age=15,address=Hanoi Four Student@name=D,age=14,address=Hanoi