arraylist的java值在meny中不断重置
我会尽我所能解释这件事。在学校里,我们正在制作一个程序,允许你选择是制作数组还是数组列表,然后向其中添加数字。那部分很好用
问题是在菜单中,您还将获得将数组转换为ArrayList的选项,反之亦然。当我尝试使用case开关向类发送数组或arraylist时,我得到了一个错误,即我尚未初始化。但如果我将其设置为null以启动它,则在下次启动meny时将重置用户输入。所以我想知道是否有一种方法可以初始化数组和arraylist一次,然后下次跳过它?我知道这是一个糟糕的解释,但如果你看看代码,也许你明白我想问什么
package labb;
import java.util.ArrayList;
import java.util.Scanner;
public class Meny {
@SuppressWarnings("resource")
public static boolean meny(Scanner input){
Scanner inputMeny = new Scanner(System.in);
ArrayList<Integer> arrayListNumbers = null;
System.out.println("\n What do you want to do? \n 1 : Arraylist? \n 2 : Array? \n 3 : Convert your Array to an Arraylist \n 4 : Convert your Arraylist to an Array \n 5 : Exit");
int answer = inputMeny.nextInt();
switch(answer){
case(1)://arrayList
arrayListNumbers = Array.readNumbersFromUser(input);
PrintNumbers.PrintOutNumbers(arrayListNumbers);
System.out.println("\n");
PrintNumbers.PrintOutNumbers2(arrayListNumbers);
return true;
case(2)://array
int[] arrayNumbers = Array.readNumbersFromUserArray(input);
PrintNumbers.printNumbersArray(arrayNumbers);
System.out.println();
PrintNumbers.printNumbers2Array(arrayNumbers);
return true;
case(3)://array to arrayList
case(4)://arrayList to array
int[] array = Convert.convertArrayListToArray(arrayListNumbers);
case(5):
System.out.println("Good bye");
inputMeny.close();
return false;
default:
System.out.println("Wrong input");
inputMeny.close();
return false;
}
}
}
# 1 楼答案
不要调用公共静态布尔meny(Scanner input),而是调用公共静态布尔meny(Scanner input,ArrayList arrayListNumbers)。从调用此方法(meny)的位置,获取ArrayListNumber
所以你的代码可能是这样的
你称之为方法的地方
还有这个班