import java.util.EnumMap; /** * Demo enum as array index and as a map key. */ public class EnumArrayDemo { // constant compass directions enum Compass {north, east, south, west}; // a name for each direction private String[] names = {"Noah", "Ernie", "Sally", "Wendy"}; // a map for the names private EnumMap namesMap = new EnumMap(Compass.class); /** Show simple enum use */ public void show() { // Iterate over all the compass directions for (Compass dir: Compass.values()) { System.out.println(dir); } // This works, but is not recommended (may become deprecated) // Use one direction as an array index int index = Compass.east.ordinal(); System.out.println(names[index]); } /** This is the preferred way use an enum value to lookup an associated value. */ public void useMap() { namesMap.put(Compass.north, "Noah"); namesMap.put(Compass.east, "Ernie"); namesMap.put(Compass.south, "Sally"); namesMap.put(Compass.west, "Wendy"); System.out.println(namesMap.get(Compass.west)); } /** a local test driver */ public static void main(String[] args) { EnumArrayDemo app = new EnumArrayDemo(); app.show(); app.useMap(); } }