如何使用"n"个随机整数创建数组?

Mal*_*tor 5 java arrays random integer arraylist

创建两个Integer ArrayLists包含n个元素,每个元素将从用户获取n.

所以基本上如果用户输入'6',则需要创建具有6个元素的两个数组.我该怎么做?

这就是我所拥有的......但它甚至没有远程正确.

Scanner input= new Scanner(System.in);
    System.out.println("please enter a integer 'n' ");
    int x= input.nextInt();

    int[] a = { 1, 4, 9, 16 };
    int[] b = { 9, 7, 4, 9, 11 };
Run Code Online (Sandbox Code Playgroud)

Raz*_*zib 5

您可以使用这样的扫描仪从用户那里获取输入 -

Scanner input= new Scanner(System.in);
System.out.println("Enter the array size: ");
int n = input.nextInt(); 
Run Code Online (Sandbox Code Playgroud)

之后,您可以调用一个generateRandomArray()大小n来自用户的函数-

public List<Integer> generateRandomArray(int n){
    ArrayList<Integer> list = new ArrayList<Integer>(n);
    Random random = new Random();

    for (int i = 0; i < n; i++)
    {
        list.add(random.nextInt(1000));
    }
   return list;
}  
Run Code Online (Sandbox Code Playgroud)

这里 - random.nextInt(1000)将生成0到1000范围内的随机数.您可以根据需要修改范围.

希望它会有所帮助.
非常感谢.


Rus*_*pez 5

为了完整性,你可以使用

  1. 从随机数生成器中的下一个int生成一个int流作为供应商 ()->r.nextInt()
  2. 将流限制为所需的大小
  3. 将其转换为Array

    int[] randomIntsArray=IntStream.generate(r::nextInt).limit(size).toArray()


小智 5

如果要从间隔生成随机整数数组,可以使用以下选项

// generate 100 random number between 0 to 100 
int[]  randomIntsArray = IntStream.generate(() -> new Random().nextInt(100)).limit(100).toArray();
//generate 100 random number between 100 to 200
int[]  randomIntsArray = IntStream.generate(() -> new Random().nextInt(100) + 100).limit(100).toArray();
Run Code Online (Sandbox Code Playgroud)

  • 要使用流从区间创建随机整数数组,更好的选择是执行例如 [`int[] array = new Random().ints(100, 0, 100).toArray()`](https:// /docs.oracle.com/en/java/javase/15/docs/api/java.base/java/util/Random.html#ints(long,int,int))。这避免了为每个随机数创建一个新的“Random”实例,并且在我看来,更清晰。 (3认同)