Java 如何在不同的方法中使用arraylist,但这些方法位于类内部
我想使用不同方法中的Arraylist添加到另一个Arraylist中,就像排序一样,但错误总是找不到用于在不同方法中调用Arraylist的符号 导入java.util.* 类选择菜单{Java 如何在不同的方法中使用arraylist,但这些方法位于类内部,java,Java,我想使用不同方法中的Arraylist添加到另一个Arraylist中,就像排序一样,但错误总是找不到用于在不同方法中调用Arraylist的符号 导入java.util.* 类选择菜单{ String prod; double cost; 这用于选择实用程序: public void selectMenu(){ int utility; Scanner in = new Scanner(System.in); System.out.printf("
String prod;
double cost;
这用于选择实用程序:
public void selectMenu(){
int utility;
Scanner in = new Scanner(System.in);
System.out.printf("\n\n[1]Ordering\n[2]Add Item\n[3]Remove Item\n[4]Show Orders\n[5]Print Receipt");
do{System.out.printf("\n\nChoose Utility:");
utility = in.nextInt();
}while(utility < 1 || utility > 5);
switch(utility){
case 1:
System.out.println("\t\t\t------------------------HOTDOGGU HOUSE--------------------------");
displayMenu();
getOrder();
selectMenu();
break;
case 2:
\\adding Item
break;
case 3:
\\Remove Item
break;
case 4:
displayOrders();
break;
case 5:
\\Printing Receipt
break;
}
}
public void selectMenu(){
int效用;
扫描仪输入=新扫描仪(系统输入);
System.out.printf(“\n\n[1]订购\n[2]添加项目\n[3]删除项目\n[4]显示订单\n[5]打印收据”);
do{System.out.printf(“\n\n选择实用程序:”);
utility=in.nextInt();
}而(效用<1 | |效用>5);
开关(公用设施){
案例1:
System.out.println(“\t\t\t--------------------HOTDOGGU HOUSE------------------------------”;
显示菜单();
getOrder();
选择菜单();
打破
案例2:
\\添加项
打破
案例3:
\\删除项目
打破
案例4:
显示订单();
打破
案例5:
\\打印收据
打破
}
}
这用于显示菜单:
public void displayMenu(){
ArrayList<String> menu1 = new ArrayList<String>();
String[] menu_name = new String[6];
menu1.add("");
menu1.add("Hotdog");
menu1.add("Cheesedog");
menu1.add("Corndog");
menu1.add("Sausage");
menu1.add("Chickendog");
ArrayList<Double> menu2 = new ArrayList<Double>();
Double[] menu_price = new Double[6];
menu2.add(0.00);
menu2.add(25.50);
menu2.add(30.45);
menu2.add(20.15);
menu2.add(50.25);
menu2.add(35.75);
System.out.println("\t\t\tOrder No."+"\t\tProduct"+"\t\t\t Price");
for (int i = 1; 1 < menu1.size() && i < menu2.size(); i++){
System.out.printf("\n\t\t\t ["+i+"]"+"\t\t %s\t\t\t"+" %2.2f PHP",menu1.get(i), menu2.get(i));
}
}
public void displayMenu(){
ArrayList menu1=新建ArrayList();
字符串[]菜单_name=新字符串[6];
菜单1.添加(“”);
菜单1.添加(“热狗”);
菜单1.添加(“奶酪日志”);
菜单1.添加(“Corndog”);
菜单1.添加(“香肠”);
菜单1.添加(“Chickendog”);
ArrayList menu2=新建ArrayList();
双[]菜单价格=新双[6];
菜单2.添加(0.00);
menu2.增补(25.50);
menu2.add(30.45);
menu2.add(20.15);
menu2.add(50.25);
menu2.add(35.75);
System.out.println(“\t\t\t订单号“+”\t\t产品“+”\t\t价格”);
对于(int i=1;1
这用于显示订单:
public void displayOrders(){
ArrayList<String> product = new ArrayList<String>();
for (int i = 1; i < product.size(); i++){
product.add(prod);
}
ArrayList<Double> price = new ArrayList<Double>();
for (int i = 1; i < price.size(); i++) {
price.add(cost);
}
System.out.println("\t\t\tOrder No."+"\t\tProduct"+"\t\t\t Price");
for (int i = 1; i < product.size() && i < price.size(); i++){
System.out.printf("\n\t\t\t ["+i+"]"+"\t\t %s\t\t\t"+" %2.2f PHP",product.get(i), price.get(i));
}
}
public void displayOrders(){
ArrayList产品=新的ArrayList();
对于(int i=1;i
这是为了获取订单:
public void getOrder(){
int order;
Scanner g1 = new Scanner(System.in);
do{System.out.printf("\nWhat is your Order?:");
order = g1.nextInt();
}while(order < 1 || order > 6);
switch(order){
case 1:
prod = menu_name.get(order); \\Error cannot find symbol
cost = menu_price.get(order); \\Error cannot find symbol
break;
}
}
public void getOrder(){
整数阶;
扫描仪g1=新扫描仪(System.in);
do{System.out.printf(“\n您的订单是什么?:”);
order=g1.nextInt();
}而(顺序<1 | |顺序>6);
开关(命令){
案例1:
prod=菜单名称。获取(订单);\\Error找不到符号
成本=菜单价格获取(订单)\\错误找不到符号
打破
}
}
}您有两个选择:
class选择菜单{
串针;
double cost;//这两个字段变量已经存在
ArrayList menu1;//将其声明为字段变量。
/*
所有其他方法都在这里
*/
}
当您这样做时,您不需要担心其他任何事情,但是当您在方法selectMenu()
中初始化它(即给它一个值)时,请确保您这样做:menu1=newarraylist()代码>,而不是这个:ArrayList menu1=new ArrayList()代码>
因为您的程序中已经有两个字段变量,我怀疑您是否需要帮助了解这些变量是如何工作的。您可以将ArrayList设置为实例变量,或者将ArrayList作为参数传递给每个方法。如何将ArrayList设置为每个方法中的实例变量或参数?您可以在类级别定义它。请阅读您的java书籍或课堂笔记,或者了解如何做到这一点。现在我明白了,谢谢!!