Java 9 中 Arrays 类添加了哪些新方法?

javaobject oriented programmingprogramming

Arrays 类可以包含各种操作数组的方法,还包含允许将数组视为列表的静态工厂方法。Java 9 为 Arrays 类添加了三个重要方法:Arrays.equals()Arrays.compare() Arrays.mismatch()

Arrays.equal() − 在 Java 9 中,Arrays.equals()  方法中添加了一些重载方法。新方法采用两个提供的数组的 fromIndex toIndex  参数。这些方法根据两个数组的相对索引位置检查它们的相等性。

语法

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

在上述语法中,如果两个指定的 int 数组在指定的范围内等于另一个,则该方法返回 true。第二种方法对字符数组的作用相同。

示例

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

相关文章