Java知识系统回顾整理01基础06数组05复制数组

数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少

   

一、复制数组

把一个数组的值,复制到另一个数组中

System.arraycopy(src, srcPos, dest, destPos, length)

src: 源数组

srcPos: 从源数组复制数据的起始位置

dest: 目标数组

destPos: 复制到目标数组的起始位置

length: 复制的长度

   

public class HelloWorld {

    public static void main(String[] args) {

        int a [] = new int[]{18,62,68,82,65,9};        

        int b[] = new int[3];//分配了长度是3的空间,但是没有赋值

          

        //通过数组赋值把,a数组的前3位赋值到b数组

          

        //方法一: for循环        

        for (int i = 0; i < b.length; i++) {

            b[i] = a[i];

        }

          

        //方法二: System.arraycopy(src, srcPos, dest, destPos, length)

        //src: 源数组

        //srcPos: 从源数组复制数据的起始位置

        //dest: 目标数组

        //destPos: 复制到目标数组的启始位置

        //length: 复制的长度      

        System.arraycopy(a, 0, b, 0, 3);

          

        //把内容打印出来

        for (int i = 0; i < b.length; i++) {

            System.out.print(b[i] + " ");

        }

    }

}

   

二、练习--合并数组

题目:

首先准备两个数组,他俩的长度是5-10之间的随机数,并使用随机数初始化这两个数组(向数组填充随机数的办法,参考这里)

实现效果:

   

官方示例代码:

public class HelloWorld {

    public static void main(String[] args) {

        int a[] = new int[(int) (Math.random() * 5)+5];

        for (int i = 0; i < a.length; i++)

            a[i] = (int) (Math.random() * 100);

        int b[] = new int[(int) (Math.random() * 5)+5];

        for (int i = 0; i < b.length; i++)

            b[i] = (int) (Math.random() * 100);

          

        System.out.println("数组a的内容:");

        for (int i : a) {

            System.out.print(i+" ");

        }

        System.out.println();

        System.out.println("数组b的内容:");

        for (int i : b) {

            System.out.print(i+" ");

        }

        System.out.println();

          

        int c[] = new int[a.length+b.length];

        System.arraycopy(a, 0, c, 0, a.length);

        System.arraycopy(b, 0, c, a.length, b.length);

          

        System.out.println("数组c的内容:");

        for (int i : c) {

            System.out.print(i+" ");

        }        

    }

}

   

posted @   皿哥的技术人生  阅读(357)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示