1.Arrays.sort()
一种快速排序的方法,效率相当高,例如在冒泡排序中,用截取时间来估计
long t1=System.currentTimeMillis(); int[] s=new int[10000]; for (int i = 0; i < s.length; i++) { // s[i]=(int) (Math.random()*1000000); // } for (int i = 0; i < s.length-1; i++) {//冒泡排序: // for (int j = 0; j < s.length-1-i; j++) { // if(s[j]>s[j+1]){//交换位置 // int temp; // temp=s[j]; // s[j]=s[j+1]; // s[j+1]=temp; // } // } // }
long t2=System.currentTimeMillis();
System.out.println(t2-t1);//大概运算时间为14ms
而快速排序时间为3ms
2.Arrays.binarySearch();
二分查找:在数组两端定义头指针h与尾指针l,关键字key就为(h+l)/2,比较关键字与目标元素的大小关系,将h或l赋给key,重复操作可以查询到目标元素。
int low= fromIndex; int high = toIndex - 1; while (low <= high) { int mid = (low + high) >>> 1; int midVal = a[mid]; if (midVal < key) low = mid + 1; else if (midVal > key) high = mid - 1; else return mid; }
3.Arrays.copyof();
含两个参数,参数1:源数组,参数2:复制的长度
当复制长度超过源数组长度时,超出部分都为0
4.Arrays.copyofRange();
含三个参数,参数1:源数组,参数2:源数组开始截取位置,参数3:源数组结束截取位置(不包含此端点).
5.Arrays.toString();
将数组转换为字符串并打印出来
6.Arrays.equals();
比较两数组的值是否相同并返回一个布尔值,而”==“的是比较指向相同的地址位置
7.Arrays.compare();
将两数组的值,一 一对应比较,返回值可以理解为x-y,即相同返回0,前<后返回负数,前>后返回正数
8.System.arraycopy();
参数1: 源数组 参数2:源数组开始截取位置 参数3:目标数组的接收位置 参数4:截取长度
9.Arrays.fill();
将目标数组中元素重新填充,需要是同类型的填充值
例如:int[] s=new int[]{15,25,35,45};
double[] x=new double[]{1.0,2.1,3.2,4.3};
Arrays.fill(s,1);
System.out.println(Arrays.toString(s));// 输出为【1,1,1,1】
Arrays.fill(x,1.1);
System.out.println(Arrays.toString(x));// 输出为【1.1,1.1,1.1,1.1】
或者 以fromindex toindex val的形式给数组的某一段赋值