Ich möchte in meiner Klasse ein verschachteltes Hastable haben, um die Menge der Zutaten einzustellen. Bitte beachten Sie das folgende Szenario.JAVA verschachtelte Hashtables mit Enum
Szenario:
Ein Rezept hat mehrere Bestandteile:
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);
}
}
Hier in diesem Szenario i für das Innere Rezept, um die Menge der einzelnen Zutaten enthalten sein sollen glauben i-Hash-Tabelle ist der beste Ansatz. Aber wie kann ich eine Hash-Tabelle in einem anderen (so etwas wie diese):
{new Ingredient("Lemon") : {"unit":1}}
wo Einheit eine Enum der Klasse Rezepts ist.
Hashtable<Ingredient,Hashtable<Recipe.uom,Integer>> ingredient = null;
ingredient.put(new Ingredient("Lemon"),new Hashtable(uom.unit,1));
Er sagt, dass Hashtable (int,float) in Hashtable cannot be applied to (Recipe.uom,int)
Frage: unter Berücksichtigung dieses scenarion Einnahme. Wie kann ich eine Hashtabelle innerhalb einer anderen setzen, die eine Enumeration als Schlüssel verwendet?
Warum brauchen Sie eine Hashtabelle, um die Einheit und die Menge der Zutaten zu speichern? das können einfache Eigenschaften in der Klasse ungredient sein ... –
'HashTable' ist eine" alte "Klasse, und es wird jetzt empfohlen,' HashMap' stattdessen zu verwenden, wenn Sie die Synchronisation nicht benötigen. –
@TimothyTruckle, ich möchte eine Liste der vorhandenen Zutaten meiner Rezepte dafür, dass ich doppelte Zutaten bekommen werde, da ich in einem Rezept 1 Zitrone und in einem anderen 3 Zitronen verwenden könnte. Ich denke, dass eine Zutat eine Ernährung wie Kcal, Lipide usw. haben könnte. Deshalb denke ich, dass die Menge der Zutaten von dem Rezept abhängt und deshalb denke ich, dass das eine Eigenschaft eines Rezepts sein könnte. – ePascoal