我正在尝试初始化一个数组,然后使用另一个类(arrayCreation)更改数组的大小和元素。但是,我不知道如何做到这一点,因为我得到的只是一个元素,因为它的大小已初始化并且默认为 0。
public class sort {
public static final Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int size = 1;
int[] array = new int[size];
initialMenuSelector(array,size);
}
public static void initialMenuRender(){
System.out.println("Main menu:");
System.out.println("1. Work with numbers");
System.out.println("2. Work with words");
System.out.println("3. Exit");
}
public static void initialMenuSelector(int[] array,int size){
initialMenuRender();
System.out.println("");
System.out.print("Choose an option: ");
int selector = scanner.nextInt();
switch(selector){
case 3:
System.out.println("");
System.out.println("Exiting...");
System.exit(0);
break;
case 2:
System.out.println("");
System.out.println("Work with words");
break;
case 1:
System.out.println("");
System.out.println("Work with numbers");
arrayCreation.arrayNumberCreation(array,size);
arrayRender(array);
break;
default:
System.out.println("");
System.out.println("Invalid selection");
initialMenuSelector(array,size);
}
}
}
最佳答案
您需要将数组创建的返回值分配回初始数组。当你将一个变量传递给java中的方法时,该变量实际上被复制到一个新的本地值。因此,更改数组后,您必须从函数返回它并分配它。所以应该是这样的。
array = arrayCreation.arrayNumberCreation(array,size);
数组大小也无法更改,因此您必须创建一个新数组并将其替换为旧数组。不知道您是否在数组创建中这样做。
关于java - 如何更改 main 中使用的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61852425/