我想让用户能够在我的程序中选择int数组的大小
现在我有以下代码:
public class SortTests {
private static int size;
private static int [] myArray = new int [size];
public static void setArraySize() {
Scanner scan = new Scanner(System.in);
System.out.println("Enter a whole number to specify the size of the array: ");
size = scan.nextInt();
}
public static void fillArray() {
Random randNum = new Random();
for (int i = 0; i < myArray.length; i++) {
myArray[i] = randNum.nextInt(100);
}
}
我不知道为什么,但当我去测试并打印我的数组时。tostring只会打印“'[]”(显然它没有做它应该做的事情并填充int数组)。
有没有人对我如何整理我的代码并使其真正起作用有什么建议?
2条答案
按热度按时间yduiuuwa1#
您已经创建了数组,并且setarraysize仅更改大小变量。
更改为类似以下内容:
lf5gs5x22#
补充@john的答案
这不是初始化数组的正确方法。您使用的是空引用
size
初始化myArray
. 初始化myArray
在类示例化时发生。这意味着size
在创建类时读取一次,然后丢弃。因此,您提供的代码中的初始数组大小始终是size
. 自从size
如果为null,则数组应为空。如果要检索特定大小的数组,需要在用户提交输入后动态创建它(根据@john的回答)
另外,您肯定会考虑使用java的集合框架来代替原始数组。数组大小是动态管理的。