Java Arrays deepEquals() 方法



描述

Java Arrays deepEquals(Object[] a1, Object[] a2) 方法返回 true,如果两个指定的数组彼此深度相等。如果两个数组引用都为 null,或者它们指向包含相同数量的元素并且两个数组中所有对应的元素对都深度相等,则认为它们深度相等。

两个可能为 null 的元素 e1 和 e2 深度相等,如果满足以下任何条件:

  • e1 和 e2 都是对象引用类型的数组,并且 Arrays.deepEquals(e1, e2) 将返回 true。

  • e1 和 e2 是相同基本类型的数组,并且 Arrays.equals(e1,e2) 的适当重载将返回 true。

  • e1 == e2

  • e1.equals(e2) 将返回 true。

声明

以下是 java.util.Arrays.deepEquals() 方法的声明

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

参数

  • a1 − 这是要测试相等的数组。

  • a2 − 这是要测试相等的另一个数组。

返回值

如果两个数组相等,则此方法返回 true,否则返回 false。

异常

检查字符数组的深度相等示例

以下示例演示了 Java Arrays deepEquals(Object[], Object[]) 方法的使用。在此示例中,我们使用字符创建了三个对象数组,并使用 deepEquals() 方法比较它们。根据结果,打印比较结果。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
   
      // initializing Object array1
      Object[] b1 = new Object[] { 'a', 'b' };

      // let us print all the values available in array2
      System.out.println("Elements of Array1 is:");
      for (Object value : b1) {
         System.out.println("Value = " + value);
      }

      // initializing Object array2
      Object[] b2 = new Object[] { 'a', 'b' };

      // let us print all the values available in array2
      System.out.println("Elements of Array2 is:");
      for (Object value : b2) {
         System.out.println("Value = " + value);
      }

      // initializing Object array3
      Object[] b3 = new Object[] { 'x', 'y' };

      // let us print all the values available in array3
      System.out.println("Elements of Array3 is:");
      for (Object value : b3) {
         System.out.println("Value = " + value);
      }

      // checking array1 and array2 for equality
      System.out.println("Array1 and Array2 are equal:" + Arrays.deepEquals(b1,b2));

      // checking array1 and array3 for equality
      System.out.println("Array1 and Array3 are equal:" + Arrays.deepEquals(b1,b3));
   }
}  

输出

让我们编译并运行上述程序,这将产生以下结果:

Elements of Array1 is:
Value = a
Value = b
Elements of Array2 is:
Value = a
Value = b
Elements of Array3 is:
Value = x
Value = y
Array1 and Array2 are equal:true
Array1 and Array3 are equal:false

检查对象的数组的深度相等示例

以下示例演示了 Java Arrays deepEquals(Object[], Object[]) 方法的使用。在此示例中,我们使用 Student 对象创建了三个对象数组,并使用 deepEquals() 方法比较它们。根据结果,打印比较结果。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {

      // initializing Object array1
      Student[] b1 = new Student[] { new Student(1, "Julie"), new Student(2, "Robert") };

      // let us print all the values available in array2
      System.out.println("Elements of Array1 is:");
      for (Object value : b1) {
         System.out.println("Value = " + value);
      }

      // initializing Object array2
      Student[] b2 = new Student[] { new Student(1, "Julie"), new Student(2, "Robert") };

      // let us print all the values available in array2
      System.out.println("Elements of Array2 is:");
      for (Object value : b2) {
         System.out.println("Value = " + value);
      }

      // initializing Object array3
      Student[] b3 = new Student[] { new Student(1, "Julie"), new Student(3, "Adam") };

      // let us print all the values available in array3
      System.out.println("Elements of Array3 is:");
      for (Object value : b3) {
         System.out.println("Value = " + value);
      }

      // checking array1 and array2 for equality
      System.out.println("Array1 and Array2 are equal:" + Arrays.deepEquals(b1,b2));

      // checking array1 and array3 for equality
      System.out.println("Array1 and Array3 are equal:" + Arrays.deepEquals(b1,b3));
   }
} 
class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }

   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Elements of Array1 is:
Value = [ 1, Julie ]
Value = [ 2, Robert ]
Elements of Array2 is:
Value = [ 1, Julie ]
Value = [ 2, Robert ]
Elements of Array3 is:
Value = [ 1, Julie ]
Value = [ 3, Adam ]
Array1 and Array2 are equal:true
Array1 and Array3 are equal:false

检查整数数组的深度相等示例

以下示例演示了 Java Arrays deepEquals(Object[], Object[]) 方法的使用。在此示例中,我们创建了三个 Integer 对象数组,并使用 deepEquals() 方法比较它们。根据结果,打印比较结果。

package com.tutorialspoint;

import java.util.Arrays;

public class ArrayDemo {
   public static void main(String[] args) {
   
      // initializing Object array1
      Integer[] b1 = new Integer[] { 1, 2 };

      // let us print all the values available in array2
      System.out.println("Elements of Array1 is:");
      for (Object value : b1) {
         System.out.println("Value = " + value);
      }

      // initializing Object array2
      Integer[] b2 = new Integer[] { 1, 2 };

      // let us print all the values available in array2
      System.out.println("Elements of Array2 is:");
      for (Object value : b2) {
         System.out.println("Value = " + value);
      }

      // initializing Object array3
      Integer[] b3 = new Integer[] { 1, 3 };

      // let us print all the values available in array3
      System.out.println("Elements of Array3 is:");
      for (Object value : b3) {
         System.out.println("Value = " + value);
      }

      // checking array1 and array2 for equality
      System.out.println("Array1 and Array2 are equal:" + Arrays.deepEquals(b1,b2));

      // checking array1 and array3 for equality
      System.out.println("Array1 and Array3 are equal:" + Arrays.deepEquals(b1,b3));
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Elements of Array1 is:
Value = 1
Value = 2
Elements of Array2 is:
Value = 1
Value = 2
Elements of Array3 is:
Value = 1
Value = 3
Array1 and Array2 are equal:true
Array1 and Array3 are equal:false
java_util_arrays.htm
广告