希望标题解释我想要的东西。我想要一组随机顺序的数字1-12,但不能得到一个空结果。
这是我的代码:
Integer[] arr = new Integer[12];
for(int i = 1; i < arr.length; i++)
{
arr[i] = i+1; //With this not being i+1, I get 0-11. Like this, I get null-12 and no 1.
if (arr[i] == null)
{
arr[i] = 1;
}
}
Collections.shuffle(Arrays.asList(arr));
System.out.println(Arrays.asList(arr));
以下是我得到的结果:
[null, 5, 3, 10, 7, 2, 9, 4, 6, 12, 8, 11]
如何转换null,因为我的if语句什么都不做?
答案 0 :(得分:3)
您没有初始化数组中的第一个元素。在循环中以i = 0开始,如下所示:
for(int i = 0; i < arr.length; i++)
答案 1 :(得分:1)
从0而不是1
开始for(int i = 0; i < arr.length; i++)
答案 2 :(得分:1)
Arrays
为0 based
,因此第一个元素应该从0
索引开始,而不是1
因此,请尝试更改您的代码:
for(int i = 0; i < arr.length; i++)
了解更多详情,请详细了解arrays。
答案 3 :(得分:1)
在0
for(int i = 0; i < arr.length; i++)
答案 4 :(得分:1)
您正在将循环变量i初始化为1,因此从不为数组arr [0]分配一个默认值为null的值。你的循环应该是(int i = 0; i&lt; arr.length; i ++)