Java Data Type How to - Map Enum Keys to Enum Values








Question

We would like to know how to map Enum Keys to Enum Values.

Answer

import java.util.EnumMap;
import java.util.Map;
/*w  ww. java 2s.  c  o  m*/
enum color {
  red, green, blue
}

enum letter {
  a, b, c
}

public class Main {
  public static void main(String[] args) {
    Map<color, letter> map = new EnumMap<color, letter>(color.class);

    map.put(color.red, letter.a);
    map.put(color.green, letter.b);
    map.put(color.blue, letter.c);

    Map<color, letter> map2 = new EnumMap<color, letter>(color.class);
    letter[] letters = new letter[] { letter.a, letter.b, letter.c };

    for (int i = 0; i < color.values().length; i++){
      map2.put(color.values()[i], letters[i]);
    }
    System.out.println(map);
    System.out.println(map2);
  }

}

The code above generates the following result.