1.一维数组的三种书写方式
int[ ] array1 = new int[3];
int[ ] array2 = new int[ ]{1,2,3};
int[ ] array3 = {1,2,3};
2. 二维数组的三种书写方式
int[][] array4 = new int[3][4];
int[][] array5 = new int[][]{{1,2,3,4},{2,3,4},{4,5,6}};
int[][] array6 = new int[3][];//array6为交错数组
array6[0] = new int[]{1,2,3,4};
array6[1] = new int[]{2,3,4};
array6[2] = new int[]{4,5,6};
3. 拷贝函数(拷贝数组和原数组地址不同,拷贝函数创建新的对象)
(1)深度拷贝:可以将对象的值和对象的内容拷贝
(2)浅度拷贝:浅拷贝是指对对象引用的拷贝
(3)三种拷贝方式:1)克隆方法: int[ ] array2 = array1.clone(); //将array1数组拷贝到array2数组中
2)类库Arrays: int array3 = Arrays.copyof(array1,array1.length); //Arrays.copyof的参数分别为array1数组、array1数组的长度
** 3)System.arraycopy: System.arraycopy(array1, 0, array3, 0, length); //从array1的第0个元素往array3的第0个元素拷,拷length个长度
//运行在本地操作系统上,效率高,大数据时用此方法
//拷贝一维数组
int[] array7 = array3.clone();
int[] array8 = Arrays.Copyof(array3,array3.length);
int[] array9 = new int[array3.length];
System.arraycopy(array3,0,array9,0,array3.length); //从前往后拷
//用一个一维数组clone一个二维数组
int[][] array10 = new int[][]{};
for(int i=0;i<array3.length;i++){
array10 = array3[i].clone();
}
//foreach遍历二维数组
for(int[] data : array5){
for(int val : data){
System.out.print(val + " ");
}
System.out.println();
}
//一维/二维数组元素打印
Arrays.sort(array3); //排序
System.out.println(Arrays.toString(array3)); //打印
Arrays.binarySearch(array3,value); //返回array3排序后value所在的下标
Arrays.fill(array3,-1); //全部初始化为-1
System.out.println(Arrays.deepToString(array5));
int[] array1 = new int[5]; //自动用0填充 Arrays.fill(array1,100); //快速填充,填充到100 for(int i=0;i<array1.length;++i){ System.out.println(array1[i] + " "); } int[] array2 = new int[]{1,2,3,4,5}; int[] array3 = {1,2,3,4,5};
int[] array4 = {1,2,3,4,5}; System.out.println(array3 == array4); //比较地址 System.out.println(Arrays.equals(array3,array4)); //比较数组的值 System.out.println(Arrays.toString(array3)); //打印数组元素
Arrays.sort(array2); //排序,默认由小到大 System.out.println(Arrays.toString(array2)); int index = Arrays.binarySeach(array2,12); //查找 System.out.println("12 index is" + index); Arrays.sort(array3); //排序 System.out.println(Arrays.toString(array3)); //打印 Arrays.binarySearch(array3,value); //返回排序后value所在的下标 Arrays.fill(array3,-1); //全部初始化为-1
6. 可变参函数:将参数处理为数组
public static int sum(int... args){
return 0;
}
public static int sum(int... args){
int sum = 0;
for(int i=0;i<args.length;i++){
sum += args[i];
}
return sum;
}
public static void main(String[] args){
System.out.println(sum(1,2));
System.out.println(sum(1,2,3));
}