java - 如何更改 main 中使用的数组

标签 java arrays switch-statement

我正在尝试初始化一个数组,然后使用另一个类(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/

相关文章:

c - 复杂数组的指针数学

python - python 'switches' (dict) 应该调用里面的每个函数吗?

java - 内部 JNLP 应用程序无法在 Java 7 下运行

java - 关闭 JFrame 但继续执行程序

java - 我的模式有什么问题吗?

c - 在缓冲区中高效地查找序列

java - 使用 DBUnit 在数据库中断言更新数据的好策略是什么?

c - 使用指针从循环数组中弹出

c++ - 在 switch 语句中使用字符串——我们在 C++17 中的立场是什么?

c - 要求用户输入所需的数学运算