Java 为什么不是';这不管用吗?比较两个二维阵列中的元素
出于某种原因,这将始终返回0?为什么?我比较了两个具有特定颜色的二维空间物体阵列。我已经确定我正在比较的两个2d阵列是不同的,但是这种方法不起作用Java 为什么不是';这不管用吗?比较两个二维阵列中的元素,java,arrays,Java,Arrays,出于某种原因,这将始终返回0?为什么?我比较了两个具有特定颜色的二维空间物体阵列。我已经确定我正在比较的两个2d阵列是不同的,但是这种方法不起作用 public int compareArray(Space[][] test1, Space[][] test2) { for(int row = 0;row< test1.length;row++) { for(int column = 0; column<test1.length;column++)
public int compareArray(Space[][] test1, Space[][] test2)
{
for(int row = 0;row< test1.length;row++)
{
for(int column = 0; column<test1.length;column++)
{
if(!((test1[row][column]).getColour()).equals(test2[row] [column].getColour()))
{
System.out.println("Found a non match");
return 1;
}
}
}
return 0;
}
public int compararray(空格[][]test1,空格[][]test2)
{
for(int row=0;row for(int column=0;column我认为您需要将第二个for循环从
for(int column = 0; column<test1.length;column++)
for(int column=0;column我认为您需要将第二个for循环从
for(int column = 0; column<test1.length;column++)
for(int column=0;column您需要做更多的工作
if (test1.length != test2.length) {
return 1;
}
for(int row = 0;row< test1.length;row++)
{
if (test1[row].length != test2[row].length) {
return 1;
}
// back to your code
for(int column = 0; column<test1[row].length;column++)
{
if(!((test1[row][column]).getColour()).equals(test2[row][column].getColour()))
{
System.out.println("Found a non match");
return 1;
}
}
if(test1.length!=test2.length){
返回1;
}
for(int row=0;row 对于(int column=0;column您需要做更多的工作
if (test1.length != test2.length) {
return 1;
}
for(int row = 0;row< test1.length;row++)
{
if (test1[row].length != test2[row].length) {
return 1;
}
// back to your code
for(int column = 0; column<test1[row].length;column++)
{
if(!((test1[row][column]).getColour()).equals(test2[row][column].getColour()))
{
System.out.println("Found a non match");
return 1;
}
}
if(test1.length!=test2.length){
返回1;
}
for(int row=0;rowtest1
和test2
的颜色是相同的。因此,在检查它们是否不相同时,if语句的计算结果始终是false
尝试使用以下值:
test[0][1].setColour(spaceColour.White);
test[1][1].setColour(spaceColour.White);
test[2][1].setColour(spaceColour.Black);
test[2][2].setColour(spaceColour.Black);
test2[0][1].setColour(spaceColour.Black);
test2[1][1].setColour(spaceColour.Black);
test2[2][1].setColour(spaceColour.White);
test2[2][2].setColour(spaceColour.White);
test1
和test2
的颜色是相同的。因此,在检查它们是否不相同时,if语句的计算结果始终是false
尝试使用以下值:
test[0][1].setColour(spaceColour.White);
test[1][1].setColour(spaceColour.White);
test[2][1].setColour(spaceColour.Black);
test[2][2].setColour(spaceColour.Black);
test2[0][1].setColour(spaceColour.Black);
test2[1][1].setColour(spaceColour.Black);
test2[2][1].setColour(spaceColour.White);
test2[2][2].setColour(spaceColour.White);
如果test1的长度1
或0
,为什么我们不使用布尔值
?如果test1的长度1
或0
,为什么我们不使用布尔值
?这并不能回答他的问题。问题是他的equals验证了所有time@EdgarBoda你是对的。在没有看到其余代码的情况下,我猜测他的第二维度更长,这就是d他所期望的不同之处在于谎言。这并不能回答他的问题。问题是他的平等性一直都是正确的time@EdgarBoda你是对的。在没有看到其余代码的情况下,我猜测他的第二维度更长,这就是他期望发现的差异所在。不,“evenNumber方法,更改测试,并使其与测试2不同”谢谢,我的错误,愚蠢的错误,抱歉浪费您的时间不,“evenNumber方法,更改测试,并使其与测试2不同”谢谢,我的错误,愚蠢的错误,抱歉浪费您的时间