Java Arrays equals(T[] a, T[] a2, Comparator<? super T> cmp) 方法



描述

Java Arrays equals(T[] a, T[] a2, Comparator<? super T> cmp) 方法返回 true,如果兩個指定的物件陣列彼此相等。如果給定指定的比較器 cmp.compare(e1, e2) == 0,則兩個物件 e1 和 e2 被認為是相等的。如果兩個陣列包含相同順序的相同元素,則這兩個陣列相等。如果兩個陣列引用都為 null,則它們被認為是相等的。

宣告

以下是 java.util.Arrays.equals() 方法的宣告

public static <T> boolean equals​(T[] a, T[] a2, Comparator<? super T> cmp)

引數

  • a − 這是要測試相等性的陣列。

  • a2 − 這是要測試相等性的另一個數組。

  • cmp − 這是用於比較陣列元素的比較器。

返回值

如果兩個陣列相等,則此方法返回 true,否則返回 false。

異常

異常

  • NullPointerException − 如果比較器為 null

Java Arrays equals(T[] a, int aFromIndex, int aToIndex, T[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp) 方法

描述

Java Arrays equals(T[] a, int aFromIndex, int aToIndex, T[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp) 方法返回 true,如果在給定範圍內的兩個物件陣列彼此相等。如果給定指定的比較器 cmp.compare(e1, e2) == 0,則兩個物件 e1 和 e2 被認為是相等的。如果任何陣列為 null,則丟擲 NullPointerException。

宣告

以下是 java.util.Arrays.compare(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp) 方法的宣告

public static boolean equals​(T[] a, int aFromIndex, int aToIndex, T[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp)

引數

  • a − 這是第一個要測試相等性的陣列。

  • aFromIndex − 這是第一個陣列中要測試相等性的第一個元素的索引(包含)。

  • aToIndex − 這是第一個陣列中要測試相等性的最後一個元素的索引(不包含)。

  • b − 這是第二個要測試相等性的陣列。

  • bFromIndex − 這是第二個陣列中要測試相等性的第一個元素的索引(包含)。

  • bToIndex − 這是第二個陣列中要測試相等性的最後一個元素的索引(不包含)。

  • cmp − 這是用於比較陣列元素的比較器。

返回值

如果這兩個陣列在指定的範圍內相等,則此方法返回 true。

異常

  • IllegalArgumentException − 如果 aFromIndex > aToIndex 或 bFromIndex > bToIndex

  • ArrayIndexOutOfBoundsException − 如果 aFromIndex < 0 或 aToIndex > a.length 或 bFromIndex < 0 或 bToIndex > b.length

  • NullPointerException − 如果任何陣列或比較器為 null

檢查物件陣列是否相等的示例

以下示例演示了 Java Arrays equals(T[], T[], Comparator) 方法的用法。首先,我們建立了三個學生物件的陣列,並使用 equals(T[], T[], Comparator) 方法對它們進行了比較。根據結果,列印比較結果。

package com.tutorialspoint;

import java.util.Arrays;
import java.util.Comparator;

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

      // initializing three Student arrays
      Student[] arr1 = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };
      Student[] arr2 = { new Student(4, "Jene"), new Student(5, "John"), new Student(2, "Robert") };
      Student[] arr3 = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };

      RollNoComparator comparator = new RollNoComparator();
      // comparing arr1 and arr2
      boolean retval = Arrays.equals(arr1, arr2, comparator);
      System.out.println("arr1 and arr2 equal: " + retval);

      // comparing arr1 and arr3
      boolean retval2 = Arrays.equals(arr1, arr3);
      System.out.println("arr1 and arr3 equal: " + retval2);
   }
}
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);
   }

   public int getRollNo() {
      return rollNo;
   }

   public void setRollNo(int rollNo) {
      this.rollNo = rollNo;
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

class RollNoComparator implements Comparator<Student>{

   @Override
   public int compare(Student o1, Student o2) {
      return o1.getRollNo()-o2.getRollNo();
   }	
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

arr1 and arr2 equal: false
arr1 and arr3 equal: true

檢查物件子陣列是否相等的示例

以下示例演示了 Java Arrays equals(T[], int, int, T[], int, int, Comparator) 方法的用法。首先,我們建立了三個學生物件的陣列,並使用 equals(T[], int, int, T[], int, int, Comparator) 方法對它們進行了比較。根據結果,列印比較結果。

package com.tutorialspoint;

import java.util.Arrays;
import java.util.Comparator;

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

      // initializing three Student arrays
      Student[] arr1 = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };
      Student[] arr2 = { new Student(4, "Jene"), new Student(5, "John"), new Student(2, "Robert") };
      Student[] arr3 = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };

      RollNoComparator comparator = new RollNoComparator();
      // comparing arr1 and arr2
      boolean retval = Arrays.equals(arr1, 0, 2, arr2, 0, 2, comparator);
      System.out.println("arr1 and arr2 equal: " + retval);

      // comparing arr1 and arr3
      boolean retval2 = Arrays.equals(arr1, 0, 2, arr3, 0, 2);
      System.out.println("arr1 and arr3 equal: " + retval2);
   }
}
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);
   }

   public int getRollNo() {
      return rollNo;
   }

   public void setRollNo(int rollNo) {
      this.rollNo = rollNo;
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

class RollNoComparator implements Comparator<Student>{

   @Override
   public int compare(Student o1, Student o2) {
      return o1.getRollNo()-o2.getRollNo();
   }	
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

arr1 and arr2 equal: false
arr1 and arr3 equal: true

檢查物件子陣列是否相等的示例

以下示例演示了 Java Arrays equals(T[], int, int, T[], int, int, Comparator) 方法的用法。首先,我們建立了三個學生物件的陣列,並使用 equals(T[], int, int, T[], int, int, Comparator) 方法對它們的子陣列進行了比較。根據結果,列印比較結果。

package com.tutorialspoint;

import java.util.Arrays;
import java.util.Comparator;

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

      // initializing three Student arrays
      Student[] arr1 = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };
      Student[] arr2 = { new Student(4, "Jene"), new Student(5, "John"), new Student(2, "Robert") };
      Student[] arr3 = { new Student(1, "Julie"), new Student(3, "Adam"), new Student(2, "Robert") };

      RollNoComparator comparator = new RollNoComparator();
      // comparing arr1 and arr2
      boolean retval = Arrays.equals(arr1, 2, 3, arr2, 2, 3, comparator);
      System.out.println("Last element of arr1 and arr2 equal: " + retval);

      // comparing arr1 and arr3
      boolean retval2 = Arrays.equals(arr1, 2, 3, arr3, 2, 3);
      System.out.println("Last element of arr1 and arr3 equal: " + retval2);
   }
}
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);
   }

   public int getRollNo() {
      return rollNo;
   }

   public void setRollNo(int rollNo) {
      this.rollNo = rollNo;
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

class RollNoComparator implements Comparator<Student>{

   @Override
   public int compare(Student o1, Student o2) {
      return o1.getRollNo()-o2.getRollNo();
   }	
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Last element of arr1 and arr2 equal: true
Last element of arr1 and arr3 equal: true
java_util_arrays.htm
廣告