Arrays
toString(数组类型[] a)
int[] arr = {8,1,2,3,4};
System.out.println(Arrays.toString(arr));
binarySearch(数组类型[] a, 指定类型 key)
- 功能:使用二进制搜索算法在指定范围内搜索指定类型的值,返回key值的下标
int[] arr = {8,1,2,3,4,5,6,7};
System.out.println(Arrays.binarySearch(arr, 3));
sort(数组类型[] a)
int[] arr = {8,1,2,3,4};
Arrays.Sort(arr1);
System.out.println(Arrays.toString(arr));
compare(数组类型[] a, 数组类型[] b)
- 功能:比较两个数组是否相等。如果第一个和第二个数组相等并且包含相同顺序的相同元素,则值为0; 如果第一个数组按字典顺序小于第二个数组,则值小于0; 如果第一个数组按字典顺序大于第二个数组,则值大于0。
int[] arr1 = {8,1,2,3,4};
int[] arr2 = {8,1,2,3,4};
int[] arr3 = {100,0,2,3,4};
System.out.println(Arrays.compare(arr1, arr2));
System.out.println(Arrays.compare(arr1, arr3));
System.out.println(Arrays.compare(arr3, arr1));
mismatch(数组类型[] a, 数组类型[] b)
- 功能:比较两个数组的内容,完全相同则返回-1;否则返回第一个不同元素的下标;如果元素相同但两个数组长度不同,返回较小长度
int[] arr1 = {8,1,2,3,4};
int[] arr2 = {8,1,2,3,4};
int[] arr1 = {8,1,5,3,4};
System.out.println(Arrays.mismatch(arr1,arr2));
System.out.println(Arrays.mismatch(arr1,arr3));
equals(数组类型[] a, 数组类型[] a2)
int[] arr1 = {8,1,2,3,4};
int[] arr2 = {8,1,2,3,4};
System.out.println(Arrays.equals(arr1, arr2));
hashCode(数组类型[] a)
int[] arr2 = {8,1,2,3,4};
System.out.println(Arrays.hashCode(arr2));
copyOf(数组类型[] original, 数组类型 newLength)
- 功能:将原数组复制到新的长度的新数组中(动态扩展)
int[] arr1 = {8,1,2,3,4};
System.out.println(arr1.length);
int[] arr4 = Arrays.copyOf(arr1, 10);
System.out.println(arr4.length);
copyOfRange(数组类型[] original, int from, int to)
- 功能:将原数组中索引范围为[from, to)的部分复制到新数组中
int[] arr1 = {8,1,2,3,4};
System.out.println(Arrays.toString(arr1));
int[] arr4 = Arrays.copyOfRange(arr1, 2, 5);
System.out.println(Arrays.toString(arr4));
fill(数组类型[] a, 数组类型 val)
int[] arr4 = new int[4];
Arrays.fill(arr4, 2);
System.out.println(Arrays.toString(arr4));
fill(数组类型[] a, int fromIndex, int toIndex, 数组类型 val)
- 功能:将指定数据类型的变量val填充到数组中,范围为[fromIndex, toIndex)
int[] arr1 = {8,1,2,3,4};
Arrays.fill(arr1, 1, 3, 8);
System.out.println(Arrays.toString(arr1));
setAll(int[] array, IntUnaryOperator generator)
- 功能:使用提供的生成器函数设置指定数组的所有元素以计算每个元素。
int[] arr1 = {8,1,2,3,4};
Arrays.setAll(arr1, new IntUnaryOperator() {
@Override
public int applyAsInt(int operand) {
return operand*5;
}
});
System.out.println(Arrays.toString(arr1));
parallelPrefix(int[] array, IntBinaryOperator op)
- 功能:使用提供的函数并行地累积给定数组的每个元素。
int[] arr1 = {8,1,2,3,4};
Arrays.parallelPrefix(arr1, new IntBinaryOperator() {
@Override
public int applyAsInt(int left, int right) {
return left+right;
}
});
System.out.println(Arrays.toString(arr1));
parallelSetAll(int[] array, IntUnaryOperator generator)
- 功能:使用提供的生成器函数并行设置指定数组的所有元素以计算每个元素。
int[] arr1 = {8,1,2,3,4};
Arrays.parallelSetAll(arr1, new IntUnaryOperator() {
@Override
public int applyAsInt(int operand) {
return operand*2;
}
});
System.out.println(Arrays.toString(arr1));
parallelSort(int[] a)
- 功能:将指定的数组按升序排序,排序算法是一种并行的排序-合并算法,它将数组分成子数组,这些子数组本身被排序,然后被合并。当子数组的长度达到最小粒度时,子数组就会使用适当的Arrays.sort方法进行排序。如果指定数组的长度小于最小粒度,那么就用适当的Arrays.sort方法进行排序。该算法需要一个不超过原始数组大小的工作空间。ForkJoin公共池被用来执行任何并行任务。
int[] arr1 = {8,1,2,3,4};
Arrays.parallelSort(arr1);
System.out.println(Arrays.toString(arr1));
deepEquals(Object[] a1, Object[] a2)
- 功能:将两个数组中的元素逐个比较(==或equals),比较类型必须为Object
Integer[] arr1 = {8,1,2,3,4};
Integer[] arr2 = {8,1,2,3,4};
System.out.println(Arrays.deepEquals(arr1, arr2));
deepHashCode(Object[] a)
Integer[] arr1 = {8,1,2,3,4};
System.out.println(Arrays.deepHashCode(arr1));
deepToString(Object[] a)
- 功能:返回指定数组的“深层内容”的字符串表示形式。
Integer[] arr1 = {8,1,2,3,4};
System.out.println(Arrays.deepToString(arr1));