Java中的数组工具类Arrays类包括各种各样的静态方法,来帮助我们对数组进行排序,查找,复制,扩容等一系列操作。
Arrays的遍历输出方法
int[] arr = {22, 11, 33, 9, 60};
//Arrays的遍历输出方法
System.out.println(Arrays.toString(arr));//[22, 11, 33, 9, 60]
Arrays的排序方法
int[] arr = {22, 11, 33, 9, 60};
//Arrays的排序方法
Arrays.sort(arr);//排序方法
System.out.println(Arrays.toString(arr));//排序后输出
//[9, 11, 22, 33, 60]
Arrays的二分法查找
int[] arr = {22, 11 , 33 , 9 ,60};
//因为是二分法查找,需要先排序
Arrays.sort(arr);//[9, 11, 22, 33, 60]
//二分法查找
int index = Arrays.binarySearch(arr, 33);
System.out.println(index);//输出结果为3
//查找结果为33在排序后的数组的下标
int[] arr2 = {2, 4, 6, 8, 10, 20};
int index2 = Arrays.binarySearch(arr2, 10);
System.out.println(index2);//输出结果为4
Arrays的复制方法
int[] arr = {22, 11, 66, 88, 99, 44};
//定义新数组复制原数组的元素
int[] newArr = Arrays.copyOf(arr, arr.length);//arr为复制来源,arr.length为复制的长度
System.out.println(Arrays.toString(newArr));
//[22, 11, 66, 88, 99, 44]
int[] newArr2 = Arrays.copyOf(arr, arr.length-2);
System.out.println(Arrays.toString(newArr2));
//[22, 11, 66, 88]
//选择性复制
int[] copyArr = Arrays.copyOfRange(arr, 2, 5);//从原数组下标为2的元素开始到下标为5的元素结束,此处左闭右开原则,即[2,5)
System.out.println(Arrays.toString(copyArr));//[66, 88, 99]
// System的arraycopy方法,这是一个本地方法,底层不由Java实现,由C语言实现
int[] arr = {22, 11, 66, 88, 99, 44};
int[] dest = {0, 2, 4};
System.arraycopy(arr, 2, dest, 0 ,3);
//从arr数组下标为2的元素开始,复制到dest数组,复制的元素从dest数组中下标为0的元素开始,复制3个元素
//复制后遍历输出
System.out.println(Arrays.toString(dest));
//[66, 88, 99]
Arrays的数组扩容缩容方法
//数组扩容
int[] arr = {22, 11, 66, 88, };
//定义新数组为扩容后的数组
int[] newArr = Arrays.copyOf(arr, arr.length + 1);
System.out.println(Arrays.toString(newArr));//[22, 11, 66, 88, 0]
//扩容后的元素为0
//数组缩容
//定义新数组为缩容后的数组
int[] newArr2 = Arrays.copyOf(arr, arr.length - 1);
System.out.println(Arrays.toString(newArr2));//[22, 11, 66]
//扩容缩容都是从原数组最后一个元素开始
Arrays中的填充方法
int[] arr = {22, 11, 66, 88, 99};
// 将数组中的元素全部填充为200
Arrays.fill(arr, 200);
System.out.println(Arrays.toString(arr));//[200, 200, 200, 200, 200]
//填充数组的一部分
Arrays.fill(arr, 2, 4, 100);//将原数组中下标为2的元素开始到4为止全部用100填充,此处左闭右开原则,[2,4)
System.out.println(Arrays.toString(arr));//[22, 11, 100, 100, 99]
Arrays工具类中还提供了其他的方法,这里就不一一赘述了,可以查看API了解其他方法。