2017-04-04 5 views
0

申し訳ありません、Javaの新しい、実際にはjythonでコーディングしていますが、私はjava構文がうまくいくはずです。enumsを含む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) 

が、これは動作しません、私は戻って入力なしを取得していません。

私はここで間違っていますか?

+0

私はjythonを使ったことはありませんが、 'Hashmap.get(Count)'だけを試してみて、それが何を返すかを見てください。 –

+0

このリンクはあなたを助けるかもしれません:http://stackoverflow.com/questions/12669497/using-enum-as-key-for-map –

答えて

0

javaの回答は、Integer -> enum -> doubleと思われます。あなたがキーとしてenumを使用しているため、あなたはEnumMapような値を作成する必要があります

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

:これは、Javaで表現される

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

2300の重みを取得すると、その後myMap.get(2300).get(Field.WEIGHT)だろう。