数组复制,手写

手写数组复制

作为新手还是要写一些基本的方法实现的

此复制功能为Arrays.copy功能复制数组

public class CopyOf {
   
    public static void main(String[] args) {
   
        int[] arrays1 = {
   1, 2, 3, 0, 0};
        int[] arrays2 = {
   2, 2, 2, 3};
        //获取到第一个数组的长度
        int len1 = arrays1.length;
        //初始化count
        int count = 0;
        //循环数组一
        for (int i = 0; i < arrays1.length; i++) {
   
            //判断如果有元素不0就累加
            if (arrays1[i] != 0) {
   
                count++;
            }
        }
        //数组一的长度减去数组一不为0 元素的个数(rest为数组一中元素为0的个数)
        int rest = len1 - count;
        //数组二的长度
        int len2 = arrays2.length;
        //判断数组一中的为0 元素的长度是否小于数组二
        if (len2 > rest) {
   
            //数组一剩余空间不够添加数组二创建新的数组
            //新数组的长度为数组一中的非空数组+数组二的长度
            int[] newArray = new int[count + len2];
            //遍历数组一中的非空元素
            for (int i = 0; i < count; i++) {
   
                //把数组一中的非空元素赋值到新数组
                newArray[i] = arrays1[i];
            }
            //新数组赋值给数组一
            arrays1 = newArray;
        }
        //循环数组二,数组一从count下表开始把数组二的元素赋值给数组一
        for (int i : arrays2) {
   
            arrays1[count] = i;
            count++;
        }
        //遍历出数组一
        System.out.println(Arrays.toString(arrays1));
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务