首页 > 解决方案 > 可以用Java中的变量创建数组吗?

问题描述

在我的计算机科学课程中,我被告知只能使用文字和命名常量来创建数组,例如

int[] myarray = new int[10];

或者

final int ARRAY_SIZE = 10;
int[] myarray = new int[ARRAY_SIZE];

教授说不能使用可变变量来创建数组,例如

int arraysize = 10;
int[] myarray = new int[arraysize];

我认为一旦创建了一个数组,它的大小就不能改变,因此使用什么来创建它并不重要(文字、命名常量或变量)。此外,'final'关键字不只影响变量(例如ARRAY_SIZE)而不影响分配给它的东西吗?

那么为什么我不能使用一个变量(例如arraysize)来创建一个数组呢?

我的教授拒绝和我讨论这个问题,所以我把这个问题带到了这里。

标签: javaarrays

解决方案


我明白你在这里问什么,我可以知道你的教授为什么告诉你这个。主要原因是costant(final)整数在整个代码中不会改变,所以它不会以任何方式改变数组的维度。

但这并不意味着您不能使用它,请观看以下代码:

short numberOne =5;
int numberTwo = 5;
byte numberThree = 5;
final int NUMBER_FOUR = 5;
    
int[] arrayOne = new int[numberOne]; //short
int[] arrayTwo = new int[numberTwo]; //int
int[] arrayThree = new int[numberThree]; //byte
int[] arrayFour = new int[NUMBER_FOUR];  //final INT 

所有这些组合都经过验证并且可以使用,即使不是最终的


推荐阅读