import java.util.Arrays;
public class ArrayDemo05 {
static int[] srcArr; public static void main(String[] args) { srcArr = new int[] {11, 22, 33, 44}; System.out.println(Arrays.toString(srcArr)); add(55); System.out.println(Arrays.toString(srcArr)); add(66); System.out.println(Arrays.toString(srcArr)); insert(srcArr.length, 100); System.out.println(Arrays.toString(srcArr)); remove(6); System.out.println(Arrays.toString(srcArr)); System.out.println(get(0)); set(1, 200); System.out.println(Arrays.toString(srcArr)); } /* * 动态扩容的原理 * 往数组中动态添加一个元素 * 返回值类型: void * 参数列表: int num * 方法名: add */ /*public static void add(int num) { // 利用System.arraycopy方法处理 int[] descArr = new int[srcArr.length + 1]; // 复制数组 System.arraycopy(srcArr, 0, descArr, 0, srcArr.length); // 将num赋值到目标数组的最后一个位置 descArr[descArr.length - 1] = num; // 地址传递 srcArr = descArr; }*/ public static void add(int num) { int[] descArr = Arrays.copyOf(srcArr, srcArr.length + 1); descArr[descArr.length - 1] = num; srcArr = descArr; } /* * 往数组的任意位置插入一个元素 * 返回值类型: void * 参数列表: int index, int num * 方法名: insert */ public static void insert(int index, int num) { int[] descArr = new int[srcArr.length + 1]; System.arraycopy(srcArr, 0, descArr, 0, index); descArr[index] = num; System.arraycopy(srcArr, index, descArr, index + 1, srcArr.length - index); srcArr = descArr; } /* * 将数组中的某个索引处的元素删除 * 返回值类型: void * 参数列表: int index * 方法名: remove */ public static void remove(int index) { int[] descArr = new int[srcArr.length - 1]; System.arraycopy(srcArr, 0, descArr, 0, index); System.arraycopy(srcArr, index + 1, descArr, index, descArr.length - index); srcArr = descArr; } /* * 找出数组中的某个索引处的元素 * 返回值类型: int * 参数列表: int index * 方法名: get */ public static int get(int index) { return srcArr[index]; } /* * 找出数组中的某个索引处的元素 * 返回值类型: void * 参数列表: int index , int num * 方法名: set */ public static void set(int index, int num) { srcArr[index] = num; } }