我已经尝试了很多东西来使这个代码工作,但事实并非如此。
我的目标是使用数字nums[]
来实例化{0, 1, 2, .... n-1}
。 nums
没有大小,所以我使用了用零实例化nums
的列表。请记住,结果必须是数组(nums
)。
int nums[] = {}; int n = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number:");
n = scanner.nextInt();
ArrayList<Integer> listNum = new ArrayList<Integer>();
nums = new int[listNum.size()];//instantiate nums with zeros
//nums = listNum.toArray(nums);
for (int i =0; i < n; i++){
nums[i] = i;
}
答案 0 :(得分:3)
当你写这篇文章时:
ArrayList<Integer> listNum = new ArrayList<Integer>();
nums = new int[listNum.size()];//instantiate nums with zeros
listnum
的大小为0,因此nums
不会根据需要进行初始化。
为什么不这样做:
nums = new int[n];
答案 1 :(得分:3)
数组的大小是固定的。
nums = new int[listNum.size()];
这永远不会奏效。您正在使用零元素初始化数组。一旦声明了数组大小,就无法改变它。
您正在寻找的是
int nums[] = {}; int n = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the number:");
n = scanner.nextInt();
nums = new int[n];//instantiate nums with entered size
for (int i =0; i < n; i++){
nums[i] = i;
}
因为你知道大小n
答案 2 :(得分:3)
您不需要ArrayList
- 如果从命令行获取n
的输入,您可以使用它来初始化数组:
nums = new int[n];
for (int i =0; i < n; i++){
nums[i] = i;
}