用随机数填充数组

2022-09-03 09:19:12

我需要使用构造函数创建一个数组,添加一个将数组打印为序列的方法和一个用双精度类型的随机数填充数组的方法。

以下是我到目前为止所做的工作:

import java.util.Random;

public class NumberList {
    private static double[] anArray;

    public static double[] list() {
        return new double[10];
    }
    
    public static void print(){
        System.out.println(String.join(" ", anArray);
    }

    public static double randomFill() {
        return (new Random()).nextInt();
    }
    
    public static void main(String args[]) {
        // TODO
    }
}

我正在努力弄清楚如何用我在randomFill方法中生成的随机数填充数组。谢谢!


答案 1

你可以使用 IntStream ints() 或 DoubleStream doubles() 在 Random 类中从 java 8 开始可用。像这样的东西会起作用,这取决于你是想要 double 还是 ints 等。

Random random = new Random();

int[] array = random.ints(100000, 10,100000).toArray();

你可以打印数组,你会得到100000个随机整数。


答案 2

您需要添加逻辑以使用 randomFill 方法将随机值分配给 double[] 数组。

改变

 public static double[] list(){
    anArray = new double[10];   
    return anArray;
 }

 public static double[] list() {
    anArray = new double[10];
    for(int i=0;i<anArray.length;i++)
    {
        anArray[i] = randomFill();
    }
    return anArray;
}

然后,您可以在main方法中调用方法,包括list()和print()来生成随机的双精度值并在控制台中打印double[]数组。

 public static void main(String args[]) {

list();
print();
 }

结果如下:

-2.89783865E8 
1.605018025E9 
-1.55668528E9 
-1.589135498E9 
-6.33159518E8 
-1.038278095E9 
-4.2632203E8 
1.310182951E9 
1.350639892E9 
6.7543543E7