java数组扩增的三种方式
java数组声明的时候必须声明其长度,但当我们想对数组进行扩增的时候该怎么办呢?
下面三种方式都可以进行扩增,最后一种也最为方便。
1 /** 2 * 手动循环扩增 3 */ 4 int[] arr = { 1, 2, 3 }; 5 int[] tempArray = new int[arr.length * 2]; 6 for (int i = 0; i < arr.length; i++) { 7 tempArray[i] = arr[i]; 8 } 9 //tempArray = { 1, 2, 3, 0, 0, 0 } 10 11 /** 12 * System.arraycopy 13 * 将原有的数组复制到一个新的长度更长的数组里,以达到扩增的目的 14 */ 15 int[] arr1 = { 1, 2, 3 }; 16 int[] newArray = new int[arr1.length * 2]; 17 System.arraycopy(arr1, 0, newArray, 0, arr.length); 18 //newArray = { 1, 2, 3, 0, 0, 0 } 19 20 /** 21 * Arrays.copyOf 22 * 底层实现还是System.arraycopy 23 * 对自身进行扩增 24 */ 25 int[] arr2 = { 1, 2, 3 }; 26 arr2 = Arrays.copyOf(arr2, arr2.length * 2); 27 //arr2 = { 1, 2, 3, 0, 0, 0 }