我试图填充ArrayList
Ingredients
个ArrayList
,它们是存储成分名称(字符串)的对象,价格(双倍),卡路里数(整数)如果成分是素食(布尔)。
由于会有多种成分,我认为我应该使用public static void main(String[] args){
Scanner s = new Scanner(System.in);
int numberOfIngredients = s.nextInt();
List<Ingredient> ingredientArrayList = new ArrayList<Ingredient>();
for (int i = 0; i< numberOfIngredients; i++){
String ingredientName = s.next();
double pricePerOunce = s.nextDouble();
boolean isVegetarian = s.nextBoolean();
int numberOfCalories = s.nextInt();
ingredientArrayList.add(ingredientName, pricePerOunce, numberOfCalories, isVegetarian);
}// ends for loop to fill the ingredientArray
}
。如何使用扫描仪中的数据填充配料对象?这就是我到目前为止所做的:
function createStringFromTemplate(template, variables) {
return template.replace(new RegExp("\{([^\{]+)\}", "g"), function(_unused, varName){
return variables[varName];
});
}
createStringFromTemplate(
"I would like to receive email updates from {list_name} {var1} {var2} {var3}.",
{
list_name : "this store",
var1 : "FOO",
var2 : "BAR",
var3 : "BAZ"
}
);
答案 0 :(得分:1)
ingredientArrayList.add(ingredientName, pricePerOunce, numberOfCalories, isVegetarian);
应该是这样的
ingredientArrayList.add(new Ingredient(ingredientName, pricePerOunce, numberOfCalories, isVegetarian));
您的Ingredient类也应该具有采用所有四个属性的构造函数
您已实例化ArrayList类型的成分(CLASS OBJECT),此ArrayList只能存储Ingredient类对象而不是单个属性。
答案 1 :(得分:1)
成分是一个对象,因此您的ArrayList基本上是成分对象的列表。要将Ingredient对象添加到ArrayList,您需要将对象添加到列表而不是单个值。
这样的事情:
ingredientArrayList.add(new Ingredient(ingredientName, pricePerOunce, numberOfCalories, isVegetarian));