EnumMap是个专为列举型别设计的类别,方便您使用列举型别及Map对象,直接来举个实例:
package onlyfun.caterpillar;
import java.util.*;
enum Action {TURN_LEFT, TURN_RIGHT, SHOOT}
public class EnumMapDemo {
public static void main(String[] args) {
Map< Action, String> map =
new EnumMap< Action, String>(Action.class);
map.put(Action.TURN_LEFT, "向左转");
map.put(Action.TURN_RIGHT, "向右转");
map.put(Action.SHOOT, "射击");
for(Action action : Action.values( ) ) {
System.out.println(map.get(action));
}
}
}
执行结果:
向左转 向右转 射击
与单纯的使用HashMap比较起来的差别是,在上面的程序中,EnumMap将根据列举的顺序来维护对象的排列顺序,从下面这个程序可以看个大概:
package onlyfun.caterpillar;
import java.util.*;
enum Action {TURN_LEFT, TURN_RIGHT, SHOOT}
public class EnumMapDemo2 {
public static void main(String[] args) {
Map< Action, String> map =
new EnumMap< Action, String>(Action.class);
map.put(Action.SHOOT, "射击");?
map.put(Action.TURN_RIGHT, "向右转");
map.put(Action.TURN_LEFT, "向左转");
for(String value : map.values( )) {
System.out.println(value);
}
}
}
执行结果:
向左转 向右转 射击
从遍访的结果可以看出,对象的顺序是根据列举顺序来排列的。