Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成不带空的随机数1-12?_Java_Arrays_Random_Null - Fatal编程技术网

Java 生成不带空的随机数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] ==

希望标题能解释我想要什么。我想要一组随机顺序的数字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));

由于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您正在将循环变量i初始化为1,因此数组arr[0]从未分配默认为空的值。你的循环应该是forint i=0;i数组索引从0开始!而且您从未设置元素0…数组索引从0开始!你从来没有设置元素0…哎呀。我一定是无意中尝试了两种获得1-12的方法,但忘了移除第一种。谢谢,哎呀。我一定是无意中尝试了两种获得1-12的方法,但忘了移除第一种。谢谢