我是一名长期冲浪者,第一次问问。
一个月前我开始自学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));
}
}
尽管如此,我得到了相同值的整数数组。我究竟做错了什么?我应该尝试不同的东西。
感谢您的帮助。
此致
答案 0 :(得分:0)
这两个选项检查对象是否相同,即它是否是相同的数组。
array1 == array2
和
array1.equals(array2)
要比较您需要使用的数组的内容:
Arrays.equals(array1, array2)