如何在 Java 中比较两个数组?2025年3月25日 | 阅读 4 分钟 在 Java 中,我们可以通过比较数组的每个元素来比较两个数组。Java 的Arrays类提供了两个预定义方法,用于比较 Java 中的两个数组。 在本节中,我们将学习如何使用Arrays.equals()方法和Arrays.deepEquals()方法比较两个数组。除此之外,我们还将学习如何对两个数组执行深度比较,并提供相应的示例。 如果满足以下条件,则两个数组相等:
在开始讨论主题之前,首先考虑以下示例并猜测输出。 ArrayEqualsExample1.java 输出 Arrays are not equal. 在上面的示例中,a1 和 a2 是两个不同对象的引用。当我们比较两个引用变量时,我们得到输出数组不相等,尽管两个数组的长度相等,并且包含相同的元素。我们没有得到期望的输出,因为 equals (==) 运算符将它们作为对象进行比较。 现在,我们只有一个选项来比较两个数组,即比较数组的内容(元素)。让我们看看如何比较数组内容。 逐个比较元素会更好。为了比较数组的内容,Java 的Arrays类提供了以下两种方法来比较两个数组:
Arrays.equals() 方法Java 的Arrays类提供了equals()方法来比较两个数组。它遍历数组的每个值,并使用 equals() 方法比较元素。 语法 它解析要比较的两个数组 a1 和 a2。如果数组相等,则该方法返回 true,否则返回 false。Arrays 类为不同的原始类型和 Object 类型提供了一系列重载的 equals() 方法。 注意:在使用对象数组时,不要忘记覆盖 equals() 方法。否则,我们将获得 Object 类 equals() 方法返回的输出。ArrayEqualsExample2.java 输出 Arrays are equal. 让我们看另一个例子。 ArrayEqualsExample3.java 输出 Are array1 and array2 equal? false Are array1 and array3 equal? true 我们看到Arrays.equals()方法比较数组的元素。这里,出现了一个问题,如果一个数组包含嵌套数组或其他引用指向不同的对象但具有相同的值,该怎么办? 让我们通过以下示例来理解。 ArrayEqualsExample4.java 输出 Arrays are not equal. 在上面的示例中,我们看到 equals() 方法无法执行深度比较。为了解决这个问题,Java Arrays 类提供了另一个方法 deepEquals(),它可以深度比较两个数组。 Arrays.deepEquals() 方法Java 的Arrays类提供了另一个方法deepEquals()来深度比较数组。这里,深度比较意味着它可以比较任意深度的两个嵌套数组。两个数组对象引用 e1 和 e2 是深度相等的,如果它们满足以下任一条件:
语法 该方法解析要比较的两个数组 a1 和 a2。如果两个数组深度相等,则返回 true,否则返回 false。 让我们创建一个程序,并使用 Arrays 类的deepEquals()方法深度比较两个数组。 ArrayEqualsExample5.java 输出 Arrays are equal. |
为了编写更灵活、可重用且类型安全的代码,开发人员需要使用 Java 编程语言的泛型功能。泛型最初在 Java 5 中可用,此后已成为任何 Java 开发人员工具箱中的关键组成部分。在本节中,我们……
阅读 4 分钟
RecursiveAction 类仅用于不返回任何结果的任务,它是 java.util.concurrent.ForkJoinTask 的抽象子类。为了指示任务不提供结果,它扩展了 java.lang.Void 类。可以分解的任务,并且可以...
阅读 10 分钟
当 Java 应用程序在垃圾回收 (Garbage Collection) 上花费的时间超过正常时间时,JVM 会抛出“gc overhead limit exceeded”错误。这里的 GC 指的是“垃圾回收”。但无需担心,因为这个错误可以很快解决,只需……
5 分钟阅读
查找岛屿数量问题是通常在顶级公司编码轮面试中提出的标准问题。该问题基于图论。在图论中,我们查找连通分量的数量。在此问题中,我们必须查找相同的数量。因此,在...
阅读 6 分钟
Java IntSummaryStatistics 类的 getSum() 函数用于检索此 IntSummaryStatistics 中的记录总数。语法:public long getSum() 参数:此方法没有可以传递的参数。返回值:此 IntSummaryStatistics 中的记录总数由...
阅读 2 分钟
这是 Google、Amazon、TCS、Accenture 等顶级 IT 公司面试中经常问到的问题。通过解决该问题,人们希望检查被面试者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将计算...
5 分钟阅读
?在 Java 中,注解是关于源代码的元数据。它们对 Java 程序的执行没有直接影响。Java 中的注解是在 JDK 5 中引入的。使用注解的主要目的是它向编译器提供指令...
阅读 4 分钟
在许多编程场景中,我们面临着如何找到从一个位置 X 到另一个位置 Y 所需跳数的挑战。这种问题经常出现在算法问题中,通常通过应用方法来解决...
5 分钟阅读
在本节中,我们将学习二叉树的顶部视图以及实现它的不同方法。在二叉树的顶部视图中,我们只打印从二叉树顶部可见的节点...
阅读 4 分钟
java.nio.FloatBuffer 类的 rewind() 函数用于清除此缓冲区。此缓冲区使用 FloatBuffer 类返回。通过此过程,将位置重置为零,限制保持不变,并且所有先前指定的位置都将被清除。当一系列通道写入...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India