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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP