私のクラスでは、成分の量を設定するネストされたhastableがあります。以下のシナリオを考えてみてください。enumのJavaネストされたハッシュテーブル
シナリオ:
一つのレシピは、いくつかの成分を持っている:
私は内部のレシピ私は、ハッシュテーブルがあると信じているため、各成分の量を含めるここでは、このシナリオではpublic class Ingredient {
private static int id;
String name;
public Ingredient(String name) {
this.name = name;
}
}
public class Recipe {
public static enum uom{
ml,gr, unit, teaspoon, tablespoon,cup,coffeespoon
};
public String name;
public Hashtable<Ingredient,Hashtable<uom,Integer>> ingredients;
public String description;
public Recipe(String name, String description, Hashtable<Ingredient,Hashtable<uom,Integer>> ingredients) {
this.name = name;
this.description = description;
this.ingredients = ingredients;
}
public static void main (String [] args) {
Ingredient lemon = new Ingredient("lemon");
Hashtable<Ingredient,Hashtable<Recipe.uom,Integer>> ingredient = null;
ingredient.put(new Ingredient("Lemon"),new Hashtable(uom.unit,1));
Recipe LemonPie = new Recipe("Lemon pie","blabla",ingredients);
}
}
最高のアプローチ。しかし、どのように私は(このようなもの)、別の内部ハッシュテーブルを設定することができます。単位はクラスレシピの列挙型である
{new Ingredient("Lemon") : {"unit":1}}
。
Hashtable<Ingredient,Hashtable<Recipe.uom,Integer>> ingredient = null;
ingredient.put(new Ingredient("Lemon"),new Hashtable(uom.unit,1));
それはHashtable (int,float) in Hashtable cannot be applied to (Recipe.uom,int)
質問と言う: は考慮してこのscenarionを取ります。どのように私はハッシュテーブルを別のキーをenumとして取るかを設定できますか?
?これは、無作為なクラスの単純なプロパティである可能性があります... –
'HashTable'は「古い」クラスで、同期を必要としない場合は、代わりに' HashMap'を使用することをお勧めします。 –
@TimothyTruckle、私はレシピの既存の成分のリストを希望します。それは、1つのレシピでは1つのレモンを使用することができ、別のレシピでは3つのレモンを持つことができるので、私は成分がkcal、脂質などのような栄養を持つことができると思うのですが、なぜ私は成分の量がレシピに依存していると思うのですか?それはレシピの特性かもしれません。 – ePascoal