Java EnumMap</h1>
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
EnumMap类参数
让我们看一下java.util.EnumMap类的参数。
K: 是此Map维护的键的类型。
V: 。这是映射值的类型。
Java EnumMap类的构造函数
构造函数 |
说明 |
EnumMap(Class
<K>
keyType)
|
它用于创建具有指定键类型的空枚举映射。 |
EnumMap(EnumMap
<k,? extends v>
m)
|
用于创建具有与指定枚举图相同的键类型的枚举图。 |
EnumMap(Map
<k,? extends v>
m)
|
用于创建从指定映射初始化的枚举映射。 |
Java EnumMap类的方法
Java EnumMap示例
import java.util.*;
public class EnumMapExample {
public enum Days {
Monday, Tuesday, Wednesday, Thursday };
public static void main(String[] args) {
EnumMap<Days, String> map = new EnumMap<Days, String>(Days.class);
map.put(Days.Monday, "1");
map.put(Days.Tuesday, "2");
map.put(Days.Wednesday, "3");
map.put(Days.Thursday, "4");
for(Map.Entry m:map.entrySet()){
System.
out.println(m.
getKey()+
" "+m.
getValue());
}
}
}
输出:
Monday 1
Tuesday 2
Wednesday 3
Thursday 4
Java EnumMap示例: 图书
import java.util.*;
class Book {
int id;
String name,author,publisher;
int quantity;
public Book(int id, String name, String author, String publisher, int quantity) {
this.id = id;
this.name = name;
this.author = author;
this.publisher = publisher;
this.quantity = quantity;
}
}
public class EnumMapExample {
public enum Key{One, Two, Three };
public static void main(String[] args) {
EnumMap<Key, Book> map = new EnumMap<Key, Book>(Key.class);
Book b1=new Book(101,"Let us C","Yashwant Kanetkar","BPB",8);
Book b2=new Book(102,"Data Communications & Networking","Forouzan","Mc Graw Hill",4);
Book b3=new Book(103,"Operating System","Galvin","Wiley",6);
Map map.put(Key.One, b1);
map.put(Key.Two, b2);
map.put(Key.Three, b3);
for(Map.Entry<Key, Book> entry:map.entrySet()){
Book b=entry.getValue();
System.out.println(b.id+" "+b.name+" "+b.author+" "+b.publisher+" "+b.quantity);
}
}
}
输出:
101 Let us C Yashwant Kanetkar BPB 8
102 Data Communications & Networking Forouzan Mc Graw Hill 4
103 Operating System Galvin Wiley 6