Arrays类提供了数组排序、查找、填充、打印等常见的操作
打印数组Arrays.toString() 注意Arrays.toString()方法是Arrays类的静态方法,不是Object的toString方法
排序 sort()
二分法查找元素是否在数组里,找到了返回索引,没找到返回负数 Arrays.binarySearch(数组,要查找的元素) 二分法查找之前必须先排序
import java.util.Arrays;
/*
Arrays类提供了数组排序、查找、填充、打印等常见的操作
*/
public class TestArrays {
public static void main(String[] args) {
int[] a={8,2,1,4,9,6};
//打印数组 注意Arrays.toString()方法是Arrays类的静态方法,不是Object的toString方法
System.out.println(Arrays.toString(a));
//排序
Arrays.sort(a);
System.out.println(Arrays.toString(a));
//二分法查找元素是否在数组里,找到了返回索引,没找到返回负数 Arrays.binarySearch(数组,要查找的元素) 二分法查找之前必须先排序
System.out.println(Arrays.binarySearch(a,50));
}
}
数组的拷贝用System.arraycopy(s1,a(s1开始的下标),s2,b(s2开始的下标),c(拷贝长度))来把s1数组的
从第a个下标开始,长度为c,拷贝到s2的第b个下标开始
删除数据内某个元素,本质上还是复制
public class CopyArray {
/*
数组的拷贝用System.arraycopy(s1,a(s1开始的下标),s2,b(s2开始的下标),c(拷贝长度))来把s1数组的
从第a个下标开始,长度为c,拷贝到s2的第b个下标开始
*/
public static void main(String[] args) {
//以字符串数组为例
String[] s={"aa","bb","cc","dd"};
String[] s1=new String[10];
System.arraycopy(s,1,s1,3,2);
for(String a:s1){
System.out.println(a);
}
//删除数据内某个元素,本质上还是复制
//复制s中除了bb的其他内容
//可以这种方法来定义一个删除数组的方法,但是这种方法前移可以,后移会出问题
System.arraycopy(s,2,s,2-1,s.length-2);
s[s.length-1]=null;
for(String a:s){
System.out.println(a);
}
}
public static String[] extandRange(String[] s1){//定义一个数组的扩容方法,扩大1个
String[] s2=new String[s1.length+1];
System.arraycopy(s1,0,s2,0,s1.length);
return s2;
}
}