目录
Arrays.deepToString(数组名):打印出多维数组
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));
结尾:
即使数组的长度是固定的,不像集合有直接增加删除的方法,但是我们也可以通过另类的方式实现。核心思想就是既然你不行那我就再创造一个你,对新生的你进行改造。