JDK Arrays工具类

128 阅读2分钟

注:Arrays中涉及到区间时均为左闭右开区间,即包括fromIndex,不包括toIndex。 要表示整个数组区间时,fromIndex=0,toIndex=arr.length。

排序sort(升序)

void sort(int[]) - 对int数组进行原地排序。
void sort(T[], Comparator<? super T>) - 借助比较器对数组T进行排序。
void sort(int[], int, int) - 对数组指定索引范围进行排序。
void parallelSort(int[]) - 当数组大小小于等于2^13或者处理器只有一个核心时,与sort相同;否则使用ForkJoin进行并行排序。

二分查找binarySearch

int binarySearch(int[], int) - 在有序数组中二分搜索指定元素并返回其索引,调用此方法前必须保证数组是有序的,否则结果是未定义的。
int binarySearch(int[], int, int, int) - 在数组中有序的范围内二分搜索指定元素并返回其索引,调用此方法前必须保证数组的指定范围是有序的,否则结果是未定义的。
int binarySearch(T[], T, Comparator<? super T>) - 借助比较器在有序数组中搜索指定元素。

判断相等equals

boolean equals(int[], int[]) - 判断两个数组是否相等,相等的含义是两个数组包含相同的元素并且元数顺序相同。
boolean deepEquals(Object[], Object[]) - 判断两个引用类型数组是否相等。

填充fill

void fill(int[], int) - 用指定元素填充数组。
void fill(int[], int, int, int) - 用指定元素填充数组指定范围。

复制copyOf

int[] copyOf(int[], int) - 将原数组中的值复制到一个新数组并返回,指定新数组长度,超出原数组长度时填充0int[] copyOfRange(int[], int, int) - 将原数组指定范围复制到一个新数组并返回。
T[] copyOfRange(T[], from, to, Class<? extends T>) - 将原数组指定范围复制到一个新数组,并指定新数组的类型。

转字符串toStrign

String toString(int[]) - 转为字符串,便于输出。
String deepToString(Object[]) - 将引用类型数组转为字符串,便于输出。

转为List

List<T> asList(T... a) - 将给定数组转为List,该List实现类ArrayList是Arrays内部类。