Подтвердить что ты не робот

Использование перечисления в качестве ключа для карты

Я хочу использовать 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.

4b9b3361

Ответ 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).