gpt4 book ai didi

java - 如何比较二维(或嵌套)Java 数组?

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:49 24 4
gpt4 key购买 nike

来自 Arrays.equals(Object[] a, Object[] a2) 的 Java 文档:

Returns true if the two specified arrays of Objects are equal to one another. The two arrays are considered equal if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal.

但是当我运行下面的程序时,它输出的是 false

那么,Array 类的 mean equals 方法是否不适用于多维数组?

在下面的程序中,我可以使用什么 API 来实现 true 的结果?

public class Test {
public static void main(String[] args) {
String[][] rows1 = { new String[] { "a", "a" } };

String[][] rows2 = { new String[] { "a", "a" } };

System.out.println("Arrays.equals() = " + Arrays.equals(rows1, rows2));

}
}

最佳答案

您正在比较二维数组,这意味着这些数组的元素本身就是数组。因此,当比较元素时(使用 Objectequals),返回 false,因为 Object' s equals 比较 Object 引用。

改用Arrays.deepEquals

来自 Javadoc:

boolean java.util.Arrays.deepEquals(Object[] a1, Object[] a2)

Returns true if the two specified arrays are deeply equal to one another. Unlike the equals(Object [], Object []) method, this method is appropriate for use with nested arrays of arbitrary depth.

关于java - 如何比较二维(或嵌套)Java 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44299100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com