如何在java中创建和显示随机数的数组列表?

如何在java中创建和显示随机数的数组列表?,java,arraylist,random,Java,Arraylist,Random,我试图生成一个随机数的数组列表并显示它。我不确定我错在哪里。我认为我的showArray方法工作不正常,因为它显示了两个随机数,然后将第二个随机数重复n-2次 private static ArrayList<Integer> RandomArray(int n) { ArrayList<Integer> arrayRandom = new ArrayList<Integer>(n); for (int i=0; i

我试图生成一个随机数的数组列表并显示它。我不确定我错在哪里。我认为我的showArray方法工作不正常,因为它显示了两个随机数,然后将第二个随机数重复n-2次

private static ArrayList<Integer> RandomArray(int n)
    {

        ArrayList<Integer> arrayRandom = new ArrayList<Integer>(n);

        for (int i=0; i<n; i++)
        {
            Random rand = new Random();
            rand.setSeed(System.currentTimeMillis());
            Integer r = rand.nextInt() % 256;
            arrayRandom.add(r);

        }

        return arrayRandom;

    }

private static void ShowArray(ArrayList<Integer> randomArray)
{
    int n = randomArray.size();

    ArrayList<Integer> showArray = new ArrayList<Integer>(n);

    for (int i = 0; i<n; i++)
    {
        int r = randomArray.get(i);
        showArray.add(r);
    }
    System.out.println(showArray);

}

public static void main(String args[])
    {

        ShowArray(RandomArray(5));

    }
私有静态数组列表随机数组(int n)
{
ArrayList arrayRandom=新的ArrayList(n);

对于(inti=0;i将随机对象从循环中取出,不要每次都设置种子

ArrayList<Integer> arrayRandom = new ArrayList<Integer>(n);

Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for (int i=0; i<n; i++)
{
    Integer r = rand.nextInt() % 256;
    arrayRandom.add(r);
}
ArrayList arrayRandom=新的ArrayList(n);
Random rand=新的Random();
rand.setSeed(System.currentTimeMillis());

对于(inti=0;i将随机对象从循环中取出,不要每次都设置种子

ArrayList<Integer> arrayRandom = new ArrayList<Integer>(n);

Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for (int i=0; i<n; i++)
{
    Integer r = rand.nextInt() % 256;
    arrayRandom.add(r);
}
ArrayList arrayRandom=新的ArrayList(n);
Random rand=新的Random();
rand.setSeed(System.currentTimeMillis());

对于(int i=0;i而言,您的问题是不断重置种子,从而重新启动伪随机数生成器(PRNG)序列

这样做:

Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for (int i=0; i<n; i++)
{
    Integer r = rand.nextInt(256);
    arrayRandom.add(r);

}
Random rand=new Random();
rand.setSeed(System.currentTimeMillis());

对于(int i=0;i而言,您的问题是不断重置种子,从而重新启动伪随机数生成器(PRNG)序列

这样做:

Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for (int i=0; i<n; i++)
{
    Integer r = rand.nextInt(256);
    arrayRandom.add(r);

}
Random rand=new Random();
rand.setSeed(System.currentTimeMillis());

对于(int i=0;i,不要每次迭代都设置种子

        Random rand = new Random();
        rand.setSeed(System.currentTimeMillis());

做一次。

不要每次迭代都设置种子

        Random rand = new Random();
        rand.setSeed(System.currentTimeMillis());

执行一次。

完全正确!否则,您将使用相同的种子多次重新设置随机数生成器(因为它的运行速度将超过一毫秒)非常感谢!这是一种享受。对于经验丰富的人来说,最明显的一件事就是对像我这样的新手如此不安!没错!否则,你会用同一个种子重新设置随机数生成器几次(因为它的运行速度会超过一毫秒)非常感谢!这是一种享受。对于经验丰富的人来说,最明显的事情就是对像我这样的新手如此不安!谢谢你的帮助。非常有效。非常感谢!谢谢你的帮助。非常有效。非常感谢!