一、System.arraycopy
public static void arrayCopy(int[] srcArr,int srcIndex,int[] destArr,int destIndex,int len) {
for(int i = srcIndex,j = destIndex;i < srcIndex+len && j < destIndex+len && i < srcArr.length && j < destArr.length ;i++,j++) {
destArr[j] = srcArr[i];
}
}
二、Arrays.copyOf
public static int[] arrayCopy(int[] srcArr,int len) {
if(len < srcArr.length) {
System.out.println("新数组长度小于原数组");
return null;
}else {
int[] destArr = new int[len];
for(int i = 0;i < srcArr.length;i++) {
destArr[i] = srcArr[i];
}
return destArr;
}
}
三、冒泡排序
public static void sort(int[] arr) {
for(int j = 1;j < arr.length;j++) {
for(int i = 0;i < arr.length-j;i++) {
if(arr[i] > arr[i+1]) {
arr[i] = arr[i] ^ arr[i+1];
arr[i+1] = arr[i] ^ arr[i+1];
arr[i] = arr[i] ^ arr[i+1];
}
}
}
}
默认升序
四、Arrays.sort
Integer[] arr = {8,20,1,3,-1,6};
Arrays.sort(arr);
降序
Arrays.sort(arr,new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
return o1 - o2;
//默认规定大数在后
}
});
作业
1、邮箱正则表达式
2、数组劈开,把另一个数组的内容搞里头
3、定义一个工具类,有如下描述
(1)有一个数组类型变量作为属性
(2)提供一个无参构造方法,内部为属性中的数组变量赋一个数组对象,长度默认是10
(3)提供一个有参构造方法,参数为int型,创建一个该参数作为长度的数组
(4)提供一个增加Object类型元素的方法,如果到数组长度最大值,数组自动扩充为原来的1.5倍,只有一个Object类型的参数,
(5)提供一个根据索引获得该数组中元素的方法,只有一个int的型的参数,表示索引
(6)提供一个替换指定索引位置的元素的方法,两个参数,参数一,int型索引,参数二,Object型替换后的元素
(7)提供一个删除指定索引位置的元素的方法,只有一个参数,int型索引
(8)重写toString方法,展示数组中所有元素