每次for循环命中时如何创建对象列表?

时间:2015-11-10 01:40:45

标签: java for-loop arraylist java.util.scanner

好的,所以这可能是一个冗长的但是目前我仍然坚持如何为每个新配方创建一个Ingrediants列表,因为当我运行这两个程序时,它现在不断添加对象到相同的清单。任何缩短代码或更好方法的建议都会受到重视,但为每次迭代制作一种实例变量是首要任务。谢谢。为了澄清,我每次运行AddRecipe Class时都需要一个特定于该配方的新成分列表,而不是所有配方中的大量Ingrediants。

问题;每次迭代我的addIngrediant类时,我都希望为使用它的AddRecipe类提供一个独特的ingrediant值。 (对于每个食谱,新的成分)我不知道如何做到这一点,并提供了两种方法的样本。

在食谱类

  public static void addIngrediants(String EcipeName){
  if(Recipe.recipeName.equals(EcipeName)){
    List<List<String>> lists = new ArrayList<List<String>>();
    for (int i = 0; i < 100; i++) {

System.out.println("Would you like to add an Ingrediant(YES or NO)");
Scanner yesSir = new Scanner(System.in);
String inputSir = yesSir.nextLine();

if(inputSir.equals("YES")){
System.out.println("Enter your Ingrediant; ");
String userIngred = yesSir.nextLine();
Ingred.add(userIngred);

System.out.println("Your Ingrediant is; " + userIngred);
System.out.println("Your new ingrediant list is now; " + Ingred);

    }
else{
    System.out.println("Okay thanks!");
    break;
}
}
}


}

在包装类中

    public static void AddRecipe(){
    Recipe jackson = new Recipe();
    int index = 0;
    for(int i = 0; i<= recipeBook.size();){
        System.out.println("============================");
        System.out.println("Welcome to the Recipe Book!");
        System.out.println("============================");
        jackson.getDirections();
        jackson.getCalorieCount();
        jackson.getHi();
        jackson.getRecipeName();



            System.out.println("Would you like to add a recipe?(Type YES or NO)");
            Scanner wantTo = new Scanner(System.in);
            String bad = wantTo.nextLine();

            if(bad.equals("YES")){
                index++;
                System.out.println("Great, now lets name your Recipe;");
                String yesName = wantTo.nextLine();
                jackson.setRecipeName(yesName);

                System.out.println("First we'll start with Ingrediants, Input as many as you like");
                Recipe.addIngrediants(yesName);



                System.out.println("Moving on, Input your Directions;");
                String bud = wantTo.nextLine();
                jackson.setDirections(bud);

                System.out.println("Now input a Calorie Count (Numbers Only!)");
                int jman = wantTo.nextInt();
                jackson.setCalorieCount(jman);

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解你的问题。只是看看你发布的一小段代码,我觉得你并没有真正拥抱面向对象的设计。从阅读你的问题我建议制作一个食谱类,将存储食谱的所有基本元素。在这里你应该有一个实例变量来存储你的步骤列表。从这里开始,我将制作另一个作为食谱书的课程。该类应该能够创建,存储和管理配方对象。我要创建的最后一个类是一个可以接受用户输入的类。这将是程序中最高级别的类,并允许用户通过控制台输入实际使用该程序。