Arrays的工具类
程序员文章站
2024-03-06 09:57:43
...
Java中Arrays的工具类
1.Arrays的遍历输出方法
int[] arr = {22,11,66,88,99,44}
System.out.println(Arrays.toString(arr));
2.Arrays的排序方法
Arrays.sort(arr);//底层是一个快速排序方法
System.out.println(Arrays.toString(arr));
3.Arrays的二分查找方法
//二分查找必须先进行排序,Arrays.sort(arr);
int index = Arrays.binarySearch(arr,88);
System.out.println(index);
4.System.arraycopy()方法,本地方法,底层由C语言实现
int[] dest = {100,200,300};
System.arraycopy(arr,1,dest,0,3);
//arr 源数组对象
//1 从源数组中的第几个位置复制,为索引值
//dest 目标数组对象
//0 从目标数组中的第几个位置插入,为索引值
//3 为源数组的长度
5.复制数组
int[] newArr = Arrays.copyOf(arr,arr.length);
System.out.println(Arrays.toString(newArr));
6.数组扩容
int[] newArr2 = Arrays.copyOf(arr,arr.length+1)
System.out.println(Arrays.toString(newArr2));
7.数组缩容
int[] newArr3 = Arrays.copyOf(arr,arr.length-2);
System.out.println(Arrays.toString(newArr3));
8.填充数组
Arrays.fill(arr,100);
System.out.println(Arrays.toString(arr));
9.填充数组的一部分 左闭右开原则
Arrays.fill(arr,2,4,100);
System.out.println(Arrays.toString(arr));
10.复制数组中的数据,通过索引范围
int[] copyArr = Arrays.copyOfRange(arr, 2, 5);
System.out.println(Arrays.toString(copyArr));
11.Arrays.equals()方法判断数组是否相等
int[] arr1 = {11, 22, 33, 44};
int[] arr2 = {11, 22, 33, 44};
System.out.println(Arrays.equals(arr1, arr2));
代码实现如下:
public class ArrayDemo03 {
public static void main(String[] args) {
int[] arr = {22, 11, 66, 88, 99, 44};
// Arrays的遍历输出方法
System.out.println(Arrays.toString(arr));
// Arrays的排序方法
// Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
// Arrays的二分法查找方法
int index = Arrays.binarySearch(arr, 88);
System.out.println(index);
// System的arraycopy方法,这是一个本地方法,底层不由Java实现,由C语言实现
int[] dest = {100, 200, 300};
// Object src, int srcPos,Object dest, int destPos, int length
System.arraycopy(arr, 1, dest, 0 ,3);
System.out.println(Arrays.toString(dest));
// 复制数组
int[] newArr = Arrays.copyOf(arr, arr.length);
System.out.println(Arrays.toString(newArr));
// 数组扩容
int[] newArr2 = Arrays.copyOf(arr, arr.length + 1);
System.out.println(Arrays.toString(newArr2));
// 缩小数组的容量
int[] newArr3 = Arrays.copyOf(arr, arr.length - 2);
System.out.println(Arrays.toString(newArr3));
// 填充数组
// Arrays.fill(arr, 100);
// System.out.println(Arrays.toString(arr));
// 填充数组的一部分 左闭右开原则
// Arrays.fill(arr, 2, 4, 100);
// System.out.println(Arrays.toString(arr));
int[] copyArr = Arrays.copyOfRange(arr, 2, 5);
System.out.println(Arrays.toString(copyArr));
int[] arr1 = {11, 22, 33, 44};
int[] arr2 = {11, 22, 33, 44};
System.out.println(Arrays.equals(arr1, arr2));
}
}