使用枚举作为映射的键 [已关闭]

2022-09-01 21:47:57

我想用作键,将对象用作值。下面是示例代码片段: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);  
     }
}

它现在是一个普通的哈希映射,具有整数键和和对象作为值。现在我想把它改成.这样我就可以使用这些钥匙。我也不知道如何使用检索值。EnummapenumEnummap


答案 1

它与 Just Declare 的原则相同,并按照 .MapenumKeyEnumMap

public enum Color {
    RED, YELLOW, GREEN
}

Map<Color, String> enumMap = new EnumMap<Color, String>(Color.class);
enumMap.put(Color.RED, "red");
String value = enumMap.get(Color.RED);

您可以在这里找到更多关于这里的信息Enums


答案 2

只需替换为 .new HashMap<Integer, Object>()new EnumMap<MyEnum, Object>(MyEnum.class)