java - Switch 语句不允许我将 ArrayLists 的最后一个元素添加到新的 ArrayList
问题描述
对于switch
语句中的每种情况,该函数显示一个子菜单,允许用户选择他们想要的项目并返回一个ArrayList
并将其添加到allItem
ArrayList
. 在我添加行以将元素添加到ArrayList
totalCost
. 它没有循环回到第一个打印语句,而是在执行用户刚刚输入的功能时卡住了,并在返回原始菜单之前多次执行,并且ArrayList
不再正确添加项目。在取出我指出有问题的行后,一切正常,但我只需要获取ArrayList
我在每个语句中调用的每个函数的最后一个索引switch
并将其添加到totalCost
ArrayList
.
public static ArrayList<ArrayList<String>> itemMenu(){
ArrayList<ArrayList<String>> allItems = new ArrayList<>();
ArrayList<String> totalCost = new ArrayList<>();
Scanner in = new Scanner(System.in);
boolean chosen = false;
do {
System.out.println("\nWelcome to the store, what would you like to do?");
System.out.println("1.) Get Boba\n2.) Get Coffee\n3.) Get a Pastry\n4.) Get a Macaron\n" +
"5.) Get a Cookie\n6.) Done");
int userChoice = 0;
userChoice = in.nextInt();
switch (userChoice) {
case 1:
allItems.add(bobaDrink()); // Adds the returned ArrayList into an ArrayList of all items
totalCost.add(bobaDrink().get(bobaDrink().size() - 1)); //Problem
break;
case 2:
allItems.add(coffeeDrink());
totalCost.add(coffeeDrink().get(coffeeDrink().size() - 1)); //Problem
break;
case 3:
allItems.add(pastryItem());
totalCost.add(pastryItem().get(pastryItem().size() - 1)); //Problem
break;
case 4:
allItems.add(macaronItem());
totalCost.add(macaronItem().get(macaronItem().size() - 1)); //Problem
break;
case 5:
allItems.add(cookieItem());
totalCost.add(cookieItem().get(cookieItem().size() - 1)); //Problem
break;
case 6:
chosen = true;
break;
default : System.exit(0);
break;
}
}
while(!chosen);
System.out.println(allItems);
System.out.println(totalCost);
return allItems;
}
如果有人需要对此进行更多说明,请告诉我!
解决方案
是的,这段代码很奇怪
allItems.add(bobaDrink()); // Adds the returned ArrayList into an ArrayList of all items
totalCost.add(bobaDrink().get(bobaDrink().size() - 1));
当你打电话bobaDrink()
三遍时
我建议
ArrayList<String> tmp = bobaDrink();
allItems.add (tmp);
totalCost.add(tmp.get(tmp.size() - 1));
推荐阅读
- python - 获取 MASK 位置的多标记词的概率
- url - 页面速度正在监控错误的url
- button - 处理对话框上的多个按钮单击
- python - 为什么使用 cx_oracle 执行 SQL 命令失败但手动执行?
- python-3.x - InvalidArgumentError:只有一个输入大小可能是 -1,而不是 0 和 1
- c++ - 模板类的成员函数何时实例化?
- python - Python Cookielib CookieJar,如何在发送 cookie 后读取响应(html 网页)——不使用请求
- python - jinja 中不显示数据
- ansible - ansible playbook 在其中一台主机上失败
- google-sheets - arrayformula 中的 Google Sheets 查询充当 SUMIFS