Использование перечисления в качестве ключа для карты
Я хочу использовать enum
как ключи и объект как значение. Вот пример фрагмента кода:
public class DistributorAuditSection implements Comparable<DistributorAuditSection>{
private Map questionComponentsMap;
public Map getQuestionComponentsMap(){
return questionComponentsMap;
}
public void setQuestionComponentsMap(Integer key, Object questionComponents){
if((questionComponentsMap == null) || (questionComponentsMap != null && questionComponentsMap.isEmpty())){
this.questionComponentsMap = new HashMap<Integer,Object>();
}
this.questionComponentsMap.put(key,questionComponents);
}
}
Теперь это обычный хэш файл с целыми ключами и объект как значения. Теперь я хочу изменить его на Enummap
. Чтобы я мог использовать клавиши enum
. Я также не знаю, как получить значение с помощью Enummap
.
Ответы
Ответ 1
Это тот же принцип, что и Map
Just Объявить перечисление и использовать его как Ключ к EnumMap.
public enum Colors {
RED, YELLOW, GREEN
}
Map<Colors, String> enumMap = new EnumMap<Colors, String>(Colors.class);
enumMap.put(Colors.RED, "red");
String value = enumMap.get(Colors.RED);
Подробнее о Enums
здесь
Ответ 2
Просто замените new HashMap<Integer, Object>()
на new EnumMap<MyEnum, Object>(MyEnum.class)
.