确保随机生成的int []数组不相等

时间:2014-02-06 10:12:03

标签: java arrays

我是一名长期冲浪者,第一次问问。

一个月前我开始自学java,几乎没有编程经验(除了基于GUI的Lego Mindstorms工具包编程)。

我正在测试一个涉及用随机数填充的整数数组的程序。我必须确保没有数组是相同的。所以,我使用了一个while循环,直到所有数组的比较检查完成后才会结束。这是我正在使用的测试代码:

import java.util.Arrays;
public class testmain {
    public static void main (String[] args){

        int[] testint1 = new int[2];
        int[] testint2 = new int[2];
        int[] testint3 = new int[2];
        int[] testint4 = new int[2];
        boolean donecheck = false;

        while (donecheck == false){
            testint1[0] = (int) (Math.random() * 4);
            testint1[1] = (int) (Math.random() * 4);
            testint2[0] = (int) (Math.random() * 4);
            testint2[1] = (int) (Math.random() * 4);
            testint3[0] = (int) (Math.random() * 4);
            testint3[1] = (int) (Math.random() * 4);
            testint4[0] = (int) (Math.random() * 4);
            testint4[1] = (int) (Math.random() * 4);


            if (testint1 != testint2){
                if (testint1 != testint3){
                    if (testint1 != testint4){
                        if (testint2 != testint3){
                            if (testint2 != testint4){
                                if (testint3 != testint4){
                                    donecheck = true;
                                }
                            }
                        }
                    }
                }
            }
        }   

        System.out.print (Arrays.toString(testint1));
        System.out.print (Arrays.toString(testint2));
        System.out.print (Arrays.toString(testint3));
        System.out.print (Arrays.toString(testint4));
    }
}

尽管如此,我得到了相同值的整数数组。我究竟做错了什么?我应该尝试不同的东西。

感谢您的帮助。

此致

1 个答案:

答案 0 :(得分:0)

这两个选项检查对象是否相同,即它是否是相同的数组。

array1 == array2

array1.equals(array2)

要比较您需要使用的数组的内容:

Arrays.equals(array1, array2)