如何在 Java 中检查两个数组是否相等

检查两个数组是否相等,就是比较它们的内容以确定它们是否具有相同顺序的相同元素。Java 支持使用内置方法,例如用于一维数组的 Arrays.equals() 和用于多维数组的 Arrays.deepEquals(),这使得该操作相对容易执行。以下是检查两个数组是否相等的方法 -

  • 使用 Arrays.equals() 方法

  • 使用 == 运算符

  • 使用 Arrays.deepEquals() 方法(用于多维数组)

使用 Arrays.equals() 方法

Arrays.equals() 方法 比较两个数组的实际内容。如果两个数组相等,则返回 true,这意味着它们具有相同的元素和相同的顺序。

语法

以下是 java.util.Arrays.equals() 方法的语法 −

public static boolean equals(Object[] a, Object[] a2)

示例

以下示例显示如何使用数组的 equals () 方法检查两个数组是否相等。−

import java.util.Arrays;

public class Main {
   public static void main(String[] args) throws Exception {
      int[] ary = {1,2,3,4,5,6};
      int[] ary1 = {1,2,3,4,5,6};
      int[] ary2 = {1,2,3,4};
      System.out.println("Is array 1 equal to array 2?? " +Arrays.equals(ary, ary1));
      System.out.println("Is array 1 equal to array 3?? " +Arrays.equals(ary, ary2));
   }
}

输出

Is array 1 equal to array 2?? true
Is array 1 equal to array 3?? false

使用 == 运算符

== 运算符检查两个数组引用是否指向内存中的同一个对象,而不是它们的内容是否相同。此方法不适用于比较数组的实际内容。

示例

以下是比较数组的示例 -

import java.util.Arrays;

public class HelloWorld {
   public static void main (String[] args) {
      int arr1[] = {1, 2, 3};
      int arr2[] = {1, 2, 3};
      if (Arrays.equals(arr1, arr2)) System.out.println("Same");
      else System.out.println("Not same");
   }
}

输出

Same   

使用 Arrays.deepEquals() 方法(用于多维数组)

对于比较多维数组,通常使用 Arrays.deepEquals(),因为它以递归方式比较数组,深入比较其内容。

语法

以下是 java.util.Arrays.deepEquals() 方法的语法 −

public static boolean deepEquals(Object[] a1, Object[] a2)

示例

以下是比较数组的另一个示例 −

public class HelloWorld {
   public static void main (String[] args) {
      int arr1[] = {1, 2, 3};
      int arr2[] = {1, 2, 3};
      
      if (arr1 == arr2) System.out.println("Same");
      else System.out.println("Not same");
   }
}

输出

Not same      
java_arrays.html