如何使两个数组彼此随机相等

时间:2013-11-16 19:47:55

标签: java arrays random boolean equals

我的项目的最后一部分是制作两个测试数组,成绩[] 等级2 [] 随机相等,以测试我的等于方法语句。如何正确使用java.util.Random?或者,如果有其他方法,我很乐意听到它......

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

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 个答案:

答案 0 :(得分:3)

这是矛盾的。如果是随机的,你就不能让它彼此相等。

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

答案 1 :(得分:3)

  

如何将它们变成彼此随机相等的位置?

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

答案 2 :(得分:3)

如果你想让两个数组的内容相等:

  • 将数字放在一个数组中并复制到另一个数组
  • else生成具有相同seed
  • 的随机数

Random rand = new Random(seed);

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

答案 3 :(得分:2)

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

//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;
}

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

答案 4 :(得分:1)

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