有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么不起作用?比较两个二维阵列中的元素

出于某种原因,它总是返回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;
}

我在这里称这个方法为evenNumber方法,它改变了test,使之不同于test2,这是针对我正在做的项目

public void testMethods()
   {
       Space[][] test = new Space[4][4];
   Space[][] test2= new Space[4][4];

   for(int i = 0; i < test.length; i++){
         for(int j = 0; j < test.length; j++){
              test[i][j] =  new Space(spaceColour.Null); 
              test2[i][j] =  new Space(spaceColour.Null);
         }
    }


   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.White); 
   test2[1][1].setColour(spaceColour.White);  
   test2[2][1].setColour(spaceColour.Black); 
   test2[2][2].setColour(spaceColour.Black); 

  System.out.println(compareArray(test, test2));


   evenNumber(test);
   drawBoard(test);
   System.out.println("");
   drawBoard(test2);

 }

共 (1) 个答案

  1. # 1 楼答案

    我想你需要把第二个for循环从

    for(int column = 0; column<test1.length;column++)
    

    for(int column = 0; column<test1[0].length;column++)