Java:如何测试数组相等性?

标签 java arrays equality

为什么下面的代码打印出"Different."

boolean[][] a = { {false,true}, {true,false} };
boolean[][] b = { {false,true}, {true,false} };

if (Arrays.equals(a, b) || a == b)
    System.out.println("Equal.");
else
    System.out.println("Different.");

最佳答案

Why is the following code printing "Different."?

因为Arrays.equals执行比较。由于数组从 Object 继承了它们的 equals 方法,因此将对内部数组执行身份比较,这将失败,因为 ab 不引用 same 数组。

如果您更改为 Arrays.deepEquals它将按预期打印 "Equal."

关于Java:如何测试数组相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8051084/

相关文章:

java - 了解 'behaviors' 和方法的放置

Java 返回低于平均值的数字

c++ - 我可以在 C++ 中有一个 ifstream 数组吗

ruby - 在 Ruby 中重新定义平等实际上是如何运作的?

java - 在Java中,为什么我们在定义接口(interface)时不需要将类标记为抽象类?

java - 如何模拟具有默认返回值的 null 安全运算符?

java - Android - 在所有 Activity 中设置 ActionBar 颜色?

python - 展平列表中的嵌套字典

c# - C# 中的类型相等性检查

haskell - 代数数据类型和相等性