Java 9 中 Arrays 類新增了哪些方法?


Arrays 類包含多種用於運算元組的方法,還包含允許將陣列視為列表的靜態工廠方法。Java 9 在 Arrays 類中添加了三個重要方法:**Arrays.equals()**、**Arrays.compare()** 和 **Arrays.mismatch()**。

**Arrays.equals() −** 在 Java 9 中,**Arrays.equals()** 方法添加了一些過載方法。新方法採用兩個提供的陣列的 **fromIndex** 和 **toIndex** 引數。這些方法根據它們相對的索引位置檢查兩個陣列的相等性。

語法

public static boolean equals(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

在上面的語法中,如果兩個指定的 int 陣列在指定的範圍內彼此相等,則該方法返回 true。第二個方法對 char 陣列的工作方式相同。

示例

import java.util.Arrays;
public class CompareArrayTest {
   public static void arrayEqualsTest() {
      int[] existRows = {0, 1, 2, 3, 4, 5};
      int[] newRows = {3, 4, 5, 1, 2, 0};
      System.out.println(Arrays.equals(existRows, newRows));
      System.out.println(Arrays.equals(existRows, 1, 3, newRows, 3, 5));
      System.out.println(Arrays.equals(existRows, 3, 5, newRows, 0, 2));
   }
   public static void main(String args[]) {
      CompareArrayTest.arrayEqualsTest();
   }
}

輸出

false
true
true


**Arrays.compare() −** 在 Java 9 中,**Arrays.compare()** 方法添加了一些引數。使用 **fromIndex/toIndex** 引數進行相對位置比較。

語法

public static int compare(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

在上面的語法中,該方法按字典順序比較兩個 int 陣列在指定範圍內的值。

示例

import java.util.Arrays;
public class LexicographicalArraysTest {
   public static void main(String args[]) {
      LexicographicalArraysTest.compareSliceArraysTest();
   }
   public static void compareSliceArraysTest() {
      int[] tomMarks = {5, 6, 7, 8, 9, 10};
      int[] daisyMarks = {5, 6, 7, 10, 9, 10};
      int[] maryMarks = {5, 6, 7, 8};
      System.out.println(Arrays.compare(tomMarks, 0, 3, daisyMarks, 0, 3));
      System.out.println(Arrays.compare(tomMarks, 0, 4, maryMarks, 0, maryMarks.length));
      System.out.println(Arrays.compare(daisyMarks, 0, 4, maryMarks, 0, maryMarks.length));
   }
}

輸出

0
0
1


**Arrays.mismatch() −** 在 Java 9 中,**Arrays.mismatch()** 方法還有其他過載方法,使我們能夠查詢並返回兩個陣列片段之間第一個不匹配的索引。

語法

public static int mismatch(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

在上面的語法中,該方法查詢並返回在指定範圍內兩個 int 陣列之間第一個不匹配的**相對索引**。如果未找到不匹配,則返回 -1。索引範圍為 0(包含)到較小範圍的長度(包含)。

示例

import java.util.Arrays;
public class MismatchMethodTest {
   public static void main(String[] args) {
      MismatchMethodTest.mismatchArraysTest();
   }
   public static void mismatchArraysTest() {
      int[] a = {1, 2, 3, 4, 5};
      int[] b = {1, 2, 3, 4, 5};
      int[] c = {1, 2, 4, 4, 5, 6};
      System.out.println(Arrays.mismatch(a, b));
      System.out.println(Arrays.mismatch(a, c));
      System.out.println(Arrays.mismatch(a, 0, 2, c, 0, 2));
      System.out.println(Arrays.mismatch(a, 0, 3, c, 0, 3));
      System.out.println(Arrays.mismatch(a, 2, a.length, c, 2, 5));
   }
}

輸出

-1
2
-1
2
0

更新於:2020年2月24日

182 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告