Java教程-Java EnumMap类

Java EnumMap类
Java EnumMap类是专门用于枚举类型键的Map实现。它继承了Enum和AbstractMap类。
EnumMap类层次结构
EnumMap类的层次结构如下图所示。
EnumMap类声明
让我们来看一下java.util.EnumMap类的声明。
- public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> implements Serializable, Cloneable
Java EnumMap类参数
让我们来看一下java.util.EnumMap类的参数。
- K:此映射维护的键的类型。
- V:此映射中映射值的类型。
Java EnumMap类的构造方法
构造方法 | 描述 |
---|---|
EnumMap(Class<K> keyType) | 创建一个具有指定键类型的空枚举映射。 |
EnumMap(EnumMap<K, ? extends V> m) | 创建一个具有与指定枚举映射相同键类型的枚举映射。 |
EnumMap(Map<K, ? extends V> m) | 创建一个从指定映射初始化的枚举映射。 |
Java EnumMap类的方法
SN | 方法 | 描述 |
---|---|---|
1 | clear() | 清除映射中的所有映射关系。 |
2 | clone() | 将一个映射的映射值复制到另一个映射。 |
3 | containsKey() | 检查此映射中是否包含指定键。 |
4 | containsValue() | 检查一个或多个键是否与给定值关联。 |
5 | entrySet() | 创建一个包含在EnumMap中的元素的集合。 |
6 | equals() | 比较两个映射是否相等。 |
7 | get() | 获取指定键的映射值。 |
8 | hashCode() | 获取EnumMap的哈希码值。 |
9 | keySet() | 获取映射中包含的键的集合视图。 |
10 | size() | 获取EnumMap的大小。 |
11 | values() | 创建包含此映射中的值的集合视图。 |
12 | put() | 将给定值与给定键在此EnumMap中关联。 |
13 | putAll() | 将一个EnumMap中的所有映射关系复制到一个新的EnumMap中。 |
14 | remove() | 如果映射中存在指定键的映射关系,则从映射中移除该映射关系。 |
Java EnumMap示例
1. import java.util.*;
2. public class EnumMapExample {
3. // 创建一个枚举
4. public enum Days {
5. Monday, Tuesday, Wednesday, Thursday
6. };
7. public static void main(String[] args) {
8. // 创建并填充枚举映射
9. EnumMap<Days, String> map = new EnumMap<Days, String>(Days.class);
10. map.put(Days.Monday, "1");
11. map.put(Days.Tuesday, "2");
12. map.put(Days.Wednesday, "3");
13. map.put(Days.Thursday, "4");
14. // 打印映射
15. for(Map.Entry m:map.entrySet()){
16. System.out.println(m.getKey()+" "+m.getValue());
17. }
18. }
19. }
输出:
Monday 1
Tuesday 2
Wednesday 3
Thursday 4
Java EnumMap示例:Book
1. import java.util.*;
2. class Book {
3. int id;
4. String name,author,publisher;
5. int quantity;
6. public Book(int id, String name, String author, String publisher, int quantity) {
7. this.id = id;
8. this.name = name;
9. this.author = author;
10. this.publisher = publisher;
11. this.quantity = quantity;
12. }
13. }
14. public class EnumMapExample {
15. // 创建一个枚举
16. public enum Key{
17. One, Two, Three
18. };
19. public static void main(String[] args) {
20. EnumMap<Key, Book> map = new EnumMap<Key, Book>(Key.class);
21. // 创建图书
22. Book b1=new Book(101,"Let us C","Yashwant Kanetkar","BPB",8);
23. Book b2=new Book(102,"Data Communications & Networking","Forouzan","Mc Graw Hill",4);
24. Book b3=new Book(103,"Operating System","Galvin","Wiley",6);
25. // 将书添加到映射中
26. map.put(Key.One, b1);
27. map.put(Key.Two, b2);
28. map.put(Key.Three, b3);
29. // 遍历EnumMap
30. for(Map.Entry<Key, Book> entry:map.entrySet()){
31. Book b=entry.getValue();
32. System.out.println(b.id+" "+b.name+" "+b.author+" "+b.publisher+" "+b.quantity);
33. }
34. }
35. }
输出:
101 Let us C Yashwant Kanetkar BPB 8
102 Data Communications & Networking Forouzan Mc Graw Hill 4
103 Operating System Galvin Wiley 6