 package com.sf._02_arrays._04_copy;

 import java.util.Arrays;

 public class Test1 {
    public static void main(String[] args) {
        //定义一数组长度为5
        Integer[] arr = new Integer[5];
        //调用方法添加元素
        arr = addEle(arr,1);
        System.out.println(Arrays.toString(arr));
        arr = addEle(arr,2);
        System.out.println(Arrays.toString(arr));
        arr = addEle(arr,3);
        System.out.println(Arrays.toString(arr));
        arr = addEle(arr,4);
        System.out.println(Arrays.toString(arr));
        arr = addEle(arr,5);
        System.out.println(Arrays.toString(arr));
        arr = addEle(arr,6);
        System.out.println(Arrays.toString(arr));

    }

    public static Integer[] addEle(Integer[] arr,Integer addEle){
        // 1 定义不为空数量 用作后续判断是否需要扩容依据
        Integer notNullCount = 0;
        // 2 遍历数组拿到每一个元素
        for (int i = 0; i < arr.length; i++) {
            Integer ele = arr[i];
            // 3 如果元素的内容为null , 把内容设置对应索引位置中
            if(ele == null){
                arr[i] = addEle;
                break;
            }else{
                // 4 如果不为null, 就让notNullCount ++
                notNullCount++;
            }
        }
        // 5 如果notNullCount == 数组长度说明数组已经满了
        if(notNullCount == arr.length){
            // 6 调用Arrays.copyOf 方法进行扩容
            Integer[] newArr = Arrays.copyOf(arr, arr.length * 2);
            // 7 复制以后把要添加元素设置到新数组中
            newArr[arr.length] = addEle;
            return newArr;
        }
        return arr;
    }
}
