满满干货!java数组的常用api

目录

Arrays.toString(数组名):将数组打印出来

Arrays.deepToString(数组名):打印出多维数组

Arrays.sort(数组名):将数组进行从低到高的排序

binarySearch(int[] a,int key)二分查找方法

Arrays.fill(数组名,起始下标,结尾下标,替换的数字为):将数组选定范围的元素替换

System.arrayscopy(原数组,起始下标,新数组,起始下标,复制的长度):选定数组的范围进行复制

 实现数组定向删除指定下标里的元素。

Arrays.copyOfRange:复制数组一定范围的元素到新的数组

改变数组的长度

删除指定下标数据完整版

结尾:


今天我们就来总结一下一些比较好用的api。

Arrays.toString(数组名):将数组打印出来

int [] arr=new int{,1,2,3,4,5,6,7};
System.out.println(Arrays.toString(arr));

可以直接将arr函数给打印出来。

Arrays.deepToString(数组名):打印出多维数组

public static void main(String[] args) {
		// TODO Auto-generated method stub
int [][] arr=new int[][]{{1,2,3},{2,3,4},{5,6,7}};
System.out.println(Arrays.deepToString(arr));
	}

Arrays.sort(数组名):将数组进行从低到高的排序

public static void main(String[] args) {
	int [] arr=new int []{1,2,81,14,11,26,32,12,13};
	Arrays.sort(arr);
	System.out.println(Arrays.toString(arr));
}

binarySearch(int[] a,int key)二分查找方法

public static void main(String[] args) {
	int [] arr=new int []{1,2,81,14,11,26,32,12,13};
	Arrays.sort(arr);
	System.out.println(Arrays.toString(arr));
	Arrays.binarySearch(arr, 11);
	System.out.println("11的下标位置是"+Arrays.binarySearch(arr, 11));
}

Arrays.fill(数组名,起始下标,结尾下标,替换的数字为):将数组选定范围的数据替换

public static void main(String[] args) {
	int [] arr=new int []{1,2,81,14,11,26,32,12,13};
	System.out.println(Arrays.toString(arr));
	Arrays.fill(arr,3,6, 6);
	System.out.println(Arrays.toString(arr));
}

System.arrayscopy(原数组,起始下标,新数组,起始下标,复制的长度):选定数组的范围进行复制

public static void main(String[] args) {
		int[] arr = {1,2,3,4,5,6,7,8,9};
		System.arraycopy(arr, index, 0, 0, arr1.3);
		System.out.println(Arrays.toString(arr));
		
	}

 实现数组定向删除指定下标里的数据。

public static void main(String[] args) {
		int[] arr = {1,2,3,4,5,6,7,8,9};
		//实现删除数字4
		System.arraycopy(arr, 0, arr, 0, 3);
		System.arraycopy(arr, 4,arr ,3 ,5);
		System.out.println(Arrays.toString(arr));
	}

ps:因为数组长度未改变。后续未删除的数会有一个数重复两次。想要解决就需要结合copyOfRange和arrayscopy结合使用

Arrays.copyOfRange:复制数组指定范围的数据到新的数组

public static void main(String[] args) {
		int[] arr = new int[] { 2, 3, 4, 5435, 65, 64, 3214233, 43 };
		int[] arr1 = Arrays.copyOfRange(arr, 0, 5);
		System.out.println(Arrays.toString(arr1));
	}

改变数组的长度

public static void main(String[] args) {
		int[] arr = new int[] { 2, 3, 4, 5435, 65, 64, 3214233, 43 };
		System.out.println(Arrays.toString(arr));
		arr = Arrays.copyOfRange(arr, 0, arr.length - 1);
		System.out.println(Arrays.toString(arr));
	}

删除指定下标数据完整版

int index = n-1;
					
					String[] names2 = Arrays.copyOfRange(names, 0, names.length-1);
					System.arraycopy(names, index+1, names2, index, names.length-index-1);
					
					System.out.println(Arrays.toString(names2));

结尾:

即使数组的长度是固定的,不像集合有直接增加删除的方法,但是我们也可以通过另类的方式实现。核心思想就是既然你不行那我就再创造一个你,对新生的你进行改造。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值