如何在Java中比较两个数组?

可以使用Java中的以下方法比较数组

  • 使用Arrays.equals(array1,array2)方法-此方法迭代数组的每个值,并使用equals方法进行比较。

  • 使用Arrays.deepEquals(array1,array2)方法-此方法迭代数组的每个值,并使用任何覆盖的equals方法进行深度比较。

在数组上使用==不会得到期望的结果,并且会将它们作为对象进行比较。有关每种比较方式,请参见下面的示例。

示例

import java.util.Arrays;

public class Tester{
   public static void main(String[] args) {
      int[] array1 = {1, 2, 3};
      int[] array2 = {1, 2, 3};

      System.out.println("Arrays: array1 = [1, 2, 3], array 2 = [1, 2, 3]");
      //比较
      System.out.println("== results: " + (array1 == array2));

      //方案2:使用Arrays.equals()
      System.out.println("Arrays.equals() results: " + Arrays.equals(array1,array2));

      Object[] objArray1 = {array1};
      Object[] objArray2 = {array2};

      System.out.println("Arrays: objArray1 = {array1}, objArray1 = {array2}");
      //方案3:使用Arrays.equals()
      System.out.println("Arrays.equals() results: " + Arrays.equals(objArray1,objArray2));

      //方案4:使用Arrays.deepEquals()
      System.out.println("Arrays.deepEquals() results: " + Arrays.deepEquals(objArray1,objArray2));

   }
}

输出结果

Arrays: array1 = [1, 2, 3], array 2 = [1, 2, 3]
== results: false
Arrays.equals() results: true
Arrays: objArray1 = {array1}, objArray1 = {array2}
Arrays.equals() results: false
Arrays.deepEquals() results: true