Java EnumMap类

Java EnumMap类是专门用于枚举类型键的Map实现。它继承了Enum和AbstractMap类。

EnumMap类层次结构

EnumMap类的层次结构如下图所示。

EnumMap类声明

让我们来看一下java.util.EnumMap类的声明。

  1. 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方法描述
1clear()清除映射中的所有映射关系。
2clone()将一个映射的映射值复制到另一个映射。
3containsKey()检查此映射中是否包含指定键。
4containsValue()检查一个或多个键是否与给定值关联。
5entrySet()创建一个包含在EnumMap中的元素的集合。
6equals()比较两个映射是否相等。
7get()获取指定键的映射值。
8hashCode()获取EnumMap的哈希码值。
9keySet()获取映射中包含的键的集合视图。
10size()获取EnumMap的大小。
11values()创建包含此映射中的值的集合视图。
12put()将给定值与给定键在此EnumMap中关联。
13putAll()将一个EnumMap中的所有映射关系复制到一个新的EnumMap中。
14remove()如果映射中存在指定键的映射关系,则从映射中移除该映射关系。

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

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想