java - 可以用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)来创建一个数组呢?
我的教授拒绝和我讨论这个问题,所以我把这个问题带到了这里。
解决方案
我明白你在这里问什么,我可以知道你的教授为什么告诉你这个。主要原因是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
所有这些组合都经过验证并且可以使用,即使不是最终的
推荐阅读
- linux - 如何在 sh 中循环到日期之间的月末日期?
- typescript - 如何画一个圆形的图片 Pixijs
- docker - 在运行的容器内挂载 Lustre 不起作用(已添加所有功能)
- java - 无法从 docker 容器在 Wildfly 服务器 bin 文件夹中创建日志文件夹
- reactjs - 从组件内部和外部更改属性或状态
- data-structures - 什么是存储和使用同义词库的好数据结构?
- c++ - c++ 有没有可能`map.end()` 可以在`std::map` 的生命周期内改变
- string - 用于将字符串“09-Jan-20”//(DD-MMM-YY)转换为 ISO 日期的 MongoDB 脚本
- c# - 自动填充代理要求 webview2
- javascript - 如何导入位于 Node.js 中不同文件夹中的模块?