Java 为什么不是';这不管用吗?比较两个二维阵列中的元素

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++)

出于某种原因,这将始终返回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++)
        {
            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;rowfor(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不同”谢谢,我的错误,愚蠢的错误,抱歉浪费您的时间