数组的变相扩容:
int[] arr1={2,3,4,5}; int[] arr4=Arrays.copyOf(arr1,arr1.length+1); //数组扩容后,扩容元素的默认值为0 //数组的长度使用的是数组的属性,.length后没有括弧 System.out.println(Arrays.toString(arr4)); arr4[arr4.length-1]=7; System.out.println(Arrays.toString(arr4)); //结果: // [2, 3, 4, 5, 0] // [2, 3, 4, 5, 7]
数组的复制:
有两种方式,System.arraycopy()和Arrays.copyOf(),第一种不常用,了解即可。
int[] arr1={2,3,4,5}; int[] arr2=new int[4]; System.arraycopy(arr1,0,arr2,0,4); //结果: // [2, 3, 4, 5]
int[] arr1={2,3,4,5}; int[] arr2=new int[4]; int[] arr3=Arrays.copyOf(arr1,4); System.out.println(Arrays.toString(arr3)); //结果: // [2, 3, 4, 5]
数组的初始化:
int[] arr; //建议使用这种方式新建 int arr1[]; //这种是方便C程序员的写作习惯制定的 int[] arr2 = {1, 2, 3, 4}; int[] arr3 = new int[4]; //默认4个元素存储的都是0,如果数组新建后不赋值,就默认为数据类型对应的初始值 int[] arr4 = new int[]{2, 3, 4, 5}; //静态初始化只能在数组声明的同时进行初始化操作 int[] arr5; arr5 = new int[]{};
打印二维数组:
Arrays.deepToString()方法可以打印二维数组。
int[][] arr4=new int[4][3]; for(int i=0;i<arr4.length;i++){ for(int j=0;j<arr4[i].length;j++){ arr4[i][j]=i*j; } } System.out.println(Arrays.deepToString(arr4)); //结果: // [[0, 0, 0], [0, 1, 2], [0, 2, 4], [0, 3, 6]]