Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不同的方法中使用arraylist,但这些方法位于类内部_Java - Fatal编程技术网

Java 如何在不同的方法中使用arraylist,但这些方法位于类内部

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("

我想使用不同方法中的Arraylist添加到另一个Arraylist中,就像排序一样,但错误总是找不到用于在不同方法中调用Arraylist的符号

导入java.util.*

类选择菜单{

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找不到符号
成本=菜单价格获取(订单)\\错误找不到符号
打破
}
}
}您有两个选择:

  • 将其设置为字段变量,或
  • 将其作为参数传递给使用ArrayList的每个方法
  • 在这两个选项中,我绝对建议您使用选项1,因为它更简单。 你所要做的就是:

    class选择菜单{
    串针;
    double cost;//这两个字段变量已经存在
    ArrayList menu1;//将其声明为字段变量。
    /*
    所有其他方法都在这里
    */
    }
    
    当您这样做时,您不需要担心其他任何事情,但是当您在方法
    selectMenu()
    中初始化它(即给它一个值)时,请确保您这样做:
    menu1=newarraylist(),而不是这个:
    ArrayList menu1=new ArrayList()


    因为您的程序中已经有两个字段变量,我怀疑您是否需要帮助了解这些变量是如何工作的。

    您可以将ArrayList设置为实例变量,或者将ArrayList作为参数传递给每个方法。如何将ArrayList设置为每个方法中的实例变量或参数?您可以在类级别定义它。请阅读您的java书籍或课堂笔记,或者了解如何做到这一点。现在我明白了,谢谢!!