初始化数组
//初始化数组 int array1[] = new int[]{1,2,3,4,5}; int array2[] = new int[6]; int array3[] = new int[6]; int array4[] = new int[7]; int array5[] = new int[0];
第一次尝试给数组扩容
array1[5] = 6; System.out.println(array1[5]);
通过Arrays.arraycopy()方法复制副本,再手动复制
System.arraycopy(array1,0,array2,0,5); System.out.println(Arrays.toString(array2));//[1, 2, 3, 4, 5, 0] 多出的位数用0填充 array2[5] = 6; System.out.println(Arrays.toString(array2));//[1, 2, 3, 4, 5, 6]
通过for each循环由array1给array2赋值 该循环 i 初始值为1 缺失长度手动赋值
for (int i : array1) { array3[i-1] = i; } array3[5] = 6; System.out.println(Arrays.toString(array3));//[1, 2, 3, 4, 5, 6]
通过for循环给数组赋值 该循环i的起始值手动定义为0 缺失长度手动赋值
for (int i = 0; i < array1.length; i++){ array4[i] = array1[i]; } array4[5] = 6; array4[6] = 7; System.out.println(Arrays.toString(array4));//[1, 2, 3, 4, 5, 6, 7]
Arrays.copyOf()方法复制数组 再手动赋值
array5 = Arrays.copyOf(array1,7); System.out.println(array5.length);//length=7 array5[5] = 6; array5[6] = 7; System.out.println(Arrays.toString(array5));//[1, 2, 3, 4, 5, 6, 7]
该方法释义(jdk11):复制指定的数组,用0截断或填充(如果需要),使副本具有指定的长度。 Arrays.copyOf(原数组名,扩容的副本长度)。 该方法暴力扩容 即使初始化的数组array5的长度为0 也能改变array5的长度并赋值。