Java用随机数填充随机数组

Java用随机数填充随机数组,java,Java,我有一个家庭作业,用户必须输入数组的大小,然后数组必须填充随机值。我在用非垃圾值填充数组时遇到问题。我确信我的代码也存在其他问题,但这是我目前试图解决的最大问题。任何帮助都将不胜感激 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.io.*; import java.util.*; public class rotateArray1

我有一个家庭作业,用户必须输入数组的大小,然后数组必须填充随机值。我在用非垃圾值填充数组时遇到问题。我确信我的代码也存在其他问题,但这是我目前试图解决的最大问题。任何帮助都将不胜感激

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;

public class rotateArray1
{
    public static int randomFill()
    {
        Random rand = new Random();
        int randomInt = rand.nextInt();
        return randomInt;
    }
    void leftRotate(int arr[], int d, int n)
    {
        int i;
        for(i=0; i < d; i++)
            leftRotateByOne(arr, n);
    }

    void leftRotateByOne(int arr[], int n)
    {
        int i,temp;
        temp = arr[0];
        for(i=0; i < n -1; i++)
            arr[i] = arr[i+1];
        arr[i] = temp;
    }

    void printArray(int arr[],int size)
    {
        int i;
        for (i = 0; i<size;i++)
            System.out.print(arr[i]+ "");
    }
     public static void main(String[] args)
     {

         Scanner input = new Scanner(System.in);
         System.out.println("Enter size of array");
         int x= input.nextInt();
         int[] arr = new int[x];

         for(int i = 0; i<x; i++){
             arr[i] = randomFill();
         }


         rotateArray rotate = new rotateArray();
         rotate.leftRotate(arr, 2, x);
         rotate.printArray(arr, x);
         System.exit(0);

     }

  } 
import java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
导入javax.swing.event.*;
导入java.io.*;
导入java.util.*;
公开课轮换1
{
公共静态int-randomFill()
{
Random rand=新的Random();
int randomInt=rand.nextInt();
返回随机数;
}
void leftRotate(int arr[],int d,int n)
{
int i;
对于(i=0;i对于(i=0;i只需将对数组的引用传递给randomFill,并一次性完成。这有助于main()中的代码更容易阅读,并使用Random的一个实例,正如前面所指出的,它可能更符合您的需要

import java.util.Random;

public class JavaTest {

    public static void main(String... args) {

        int[] array = new int[10];

        randomFill(array);

        for(int i = 0; i < array.length ; i++){
            System.out.println("array["+i+"] = "+array[i]);
        }
    }

    static void randomFill(int[] array)
    {
        Random rand = new Random();

        for(int i = 0; i < array.length ; i++){
            array[i] = rand.nextInt();
        }
    }
}

您希望发生什么,以及会发生什么?什么是“垃圾值”?您不需要只包装一行:
randomValue=rand.nextInt();
。不要为每个随机值声明一个新的
Random
,因为这会减少明显的随机性。
Random
的生存期应该从第一个随机值之前到最后一个随机值之后。不要在
printArray
循环外部声明循环变量。不要对参数使用字符串串联t到
PrintStream#print
调用只获取
String.valueOf
。始终在
if
和循环体周围使用大括号。修复缩进。不要将实现放在变量或方法名中。你所说的“垃圾值”是什么意思?具体一点-你期望得到什么值,以及你得到了什么?
array[0] = 431970257
array[1] = 9846759
array[2] = 1919609165
array[3] = -544686432
array[4] = 655372436
array[5] = -331654257
array[6] = -1187729012
array[7] = 1378209257
array[8] = -1225327561
array[9] = 1887304192