【问题标题】:compare 2 2Dimensional arrays - Java比较 2 个二维数组 - Java
【发布时间】:2014-11-12 15:53:17
【问题描述】:

为什么不是这样?

int[][] arrayOfSets = {{1,2},{9,10},{1,2},{3,5}};
int[][] test =        {{1,2},{9,10},{1,2},{3,5}};

if(arrayOfSets==test){ //{{1,2},{9,10},{1,2},{3,5}}){
   System.out.println("Exactly the same");
}

输出应该是“完全相同”。或者如何将 2 个变量与二维数组进行比较?

【问题讨论】:

    标签: java multidimensional-array compare


    【解决方案1】:

    要比较多维数组,请使用 .deepEquals 链接解释原因

    .deepEquals

    以下链接解释了为什么 == 或 .equals 不起作用。

    .equals definition

    【讨论】:

      【解决方案2】:

      您使用== 这就是失败的原因,它是用于对象检查的相同所以使用:

      boolean check = Arrays.deepEquals(arrayOfSets, test);
      

      【讨论】:

        【解决方案3】:

        这不起作用,因为 == 比较引用,即您可以将其视为内存地址。在这种情况下,由于您声明了 2 个不同的数组,它们的地址必然不同。

        一个小建议 因为您的数组不包含连续的数字,例如 {1,2}, {1,3} 类似...... 您可以改为使用具有 2 个实例编号的对象并将这些对象放入一个数组中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-02-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多