Java.util.Arrays.deepEquals()方法範例


java.util.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。

異常

  • NA

例子

下面的例子顯示java.util.Arrays.deepEquals()方法的用法。

package com.yiibai;

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