Я хотел бы иметь в своем классе вложенный hastable, чтобы установить количество ингредиентов. Пожалуйста, рассмотрите следующий сценарий.JAVA вложенные hashtables с enum
Сценарий:
Один рецепт имеет несколько ингредиентов:
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 в рассмотрении. Как я могу установить хеш-таблицу внутри другого, взяв в качестве ключа перечисление?
Почему вам нужна хэш-таблица для хранения единицы и патронов ингредиента? которые могут быть простыми свойствами в классе ungredient ... –
'HashTable' - это« старый »класс, и теперь рекомендуется использовать' HashMap' вместо этого, конечно, если вам не нужна синхронизация. –
@TimothyTruckle, я бы хотел, чтобы список существующих ингредиентов моих рецептов для меня получал повторяющиеся ингредиенты, так как в одном рецепте я мог использовать 1 лимон, а в другом - 3 лимона. Я думаю, что ингредиент может иметь такое питание, как ккал, липиды и т. Д. Вот почему я думаю, что количество ингредиентов зависит от рецепта, и поэтому я считаю, что это может быть свойство рецепта. – ePascoal