有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使两个数组随机相等

我的项目的最后一部分是让两个测试阵列,grades[]grades2[]随机相等,以测试我的相等方法声明。如何使用java。util。随机正确吗?或者如果有其他方法,我很想听听

在这段代码中,程序将永远输出两个对象是不同的(显然),因为数组的内容是随机生成的。如何使它们随机相等

public class GradeBookClient
{
   public static GradeBook classRoom1, classRoom2;
   public static void main( String [] args )
   {  
     //Create two new arrays for testing the equals() method
     int[] grades = new int[100];
     int[] grades2 = new int[100]; 

     for ( int i = 0; i <= grades.length-1; i++ )
     {
         grades[i] = (int) Math.floor(Math.random()*101);
     }

     for ( int i = 0; i < grades2.length; i++ )
     {
         grades2[i] = (int) Math.floor(Math.random()*101);
     }



      classRoom1 = new GradeBook (grades);
      System.out.println( "The class size is " + classRoom1.getStudent() + " students." + "\n" + classRoom1.toString() ); 


      classRoom2 = new GradeBook (grades2);
      System.out.println( "The class size is " + classRoom2.getStudent() + " students." + "\n" + classRoom2.toString() );

      if ( classRoom1.equals( classRoom2 ))
      System.out.println("Classroom 1 has the same grades and class size as Classroom 2.");
      else
      System.out.println("Classroom 1 and Classroom 2 have different grades and class sizes.");
   }
}

共 (5) 个答案

  1. # 1 楼答案

    如果要使两个数组的内容相等:

    • 将数字放入一个数组并复制到另一个数组
    • 否则生成具有相同seed的随机数

    Random rand = new Random(seed);

    如果seed相等,那么rand.nextInt()将生成相同的数字序列

  2. # 2 楼答案

    这是一个矛盾修饰法。如果它是随机的,你就不能使它彼此相等

    编辑:如果你想创建两个相同的随机填充数组,那么你应该用随机数填充一个数组,然后用System.arraycopy()或类似的东西复制它

  3. # 3 楼答案

    How do I make it to where they are randomly equal to each other?

    你可以先决定他们是否应该平等。如果应该,只需将grades复制到grades2中,而不是独立于grades生成grades2

  4. # 4 楼答案

    使用Random创建第一个数组。然后,如果您决定它应该等于第二个数组,只需实例化一个相同类型和大小的新数组,然后逐个复制每个位置

  5. # 5 楼答案

    我不知道我是否做对了,因为它不太清楚,但也许你应该这样做:

    //Create two new arrays for testing the equals() method
    int[] grades = new int[100];
    int[] grades2 = new int[100]; 
    
    for ( int i = 0; i <= grades.length-1; i++ )
    {
        int value = (int) Math.floor(Math.random()*101);
        grades[i] = value;
        grades2[i] = value;
    }
    

    这样就可以用相同的随机值填充两个相等的数组