import java.util.Arrays; /* * 数组的扩容 * 1、Arrays.copyOf():数组拷贝+扩容 * 2、 * System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) * System.arraycopy(源数组, 源起始位置, 目标数组,目标起始位置, 拷贝长度) * 自己拷贝给自己 * */ public class ArraysLarger { public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5, 6 }; // 数组扩容前 System.out.println("数组扩容前:" + Arrays.toString(arr)); // 数组扩容后 arr = Arrays.copyOf(arr, arr.length + 5); System.out.println("数组扩容后:" + Arrays.toString(arr)); /* * 在 索引 2 的位置 插入 9 1,2,3,4,5,6 0 0 0 0 0 -->1 2 9 3 4 5 6 0 0 0 0 思路: * 1、长度是否足够 才能插入,不够 扩容 2、拷贝数组 +移动位置 +覆盖 拷贝数组 +移动位置 1,2,3,4,5,6 0 0 0 0 0 --->1 2 3 3 4 5 6 0 0 0 0 */ // 移动位置后 System.arraycopy(arr, 2, arr, 3, 4); System.out.println("移动位置后:" + Arrays.toString(arr)); // 覆盖 arr[2] = 9; System.out.println("覆盖后:" + Arrays.toString(arr)); } }