包含枚举的HashMap

时间:2017-04-04 03:29:26

标签: java enums hashmap jython

对不起,刚接触java,在jython中进行实际编码,但我认为java语法应该可行。

我有一个如下所示的hashmap:

Hashmap = {21035179={WEIGHT=1}, 2300={WEIGHT=0}, 21035180={EMA_FIRST=1000.11615393169158, EMA_SECOND=966.8684105279658}}

值是枚举类型,不确定如何改变因为我不熟悉那种类型。

我想得到2300的重量,我认为这个的语法是:

Count = 2300
Hashmap.get(Count).get(enum.WEIGHT) 

但这不起作用,我得到一个无类型。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

回答java,你的结构似乎是Integer -> enum -> double。这将在Java中表示为:

public enum Field {
    WEIGHT, EMA_FIRST, EMA_SECOND;
}
Map<Integer, Map<Field, Double>> myMap

由于您使用enum作为键,因此您应将值设为EnumMap

myMap.put(2300, new EnumMap(Field.class));
myMap.get(2300).put(Field.WEIGHT, 34.7);

获得2300的权重将为myMap.get(2300).get(Field.WEIGHT)