22

我想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.

4

2 回答 2

51

Map它与Just Declareenum和使用它Key的原理相同EnumMap

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

于 2012-10-01T08:10:42.743 回答
9

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

于 2012-10-01T08:13:07.627 回答