天天看点

Arrays的工具类

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));
		
	}
}