Java 生成不带空的随机数1-12?
希望标题能解释我想要什么。我想要一组随机顺序的数字1-12,但不能得到空结果 这是我的密码:Java 生成不带空的随机数1-12?,java,arrays,random,null,Java,Arrays,Random,Null,希望标题能解释我想要什么。我想要一组随机顺序的数字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] ==
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));
由于if语句不执行任何操作,如何转换null?您没有初始化数组中的第一个元素。从循环中的i=0开始,如下所示:
for(int i = 0; i < arr.length; i++)
您没有初始化数组中的第一个元素。从循环中的i=0开始,如下所示:
for(int i = 0; i < arr.length; i++)
从0开始,而不是从1开始
for(int i = 0; i < arr.length; i++)
从0开始,而不是从1开始
for(int i = 0; i < arr.length; i++)
数组是基于0的,因此第一个元素应该从0索引开始,而不是从1索引开始
因此,请尝试更改您的代码,如:
for(int i = 0; i < arr.length; i++)
有关更多详细信息,请阅读。数组基于0,因此第一个元素应该从0索引开始,而不是从1开始
因此,请尝试更改您的代码,如:
for(int i = 0; i < arr.length; i++)
有关详细信息,请阅读有关的详细信息。在0处启动for循环
在0处启动for循环
您正在将循环变量i初始化为1,因此数组arr[0]从未分配默认为null的值。你的循环应该是forint i=0;i