how2j.cn


工具版本兼容问题
数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少


本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



5分14秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器



步骤 1 : 复制数组   
步骤 2 : 练习-合并数组   
步骤 3 : 答案-合并数组   

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

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] + " "); } } }
步骤 2 :

练习-合并数组

edit  姿势不对,事倍功半! 点击查看做练习的正确姿势
首先准备两个数组,他俩的长度是5-10之间的随机数,并使用随机数初始化这两个数组
(向数组填充随机数的办法,参考这里)

然后准备第三个数组,第三个数组的长度是前两个的和
通过System.arraycopy 把前两个数组合并到第三个数组中
练习-合并数组
步骤 3 :

答案-合并数组

edit
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
查看本答案会花费3个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法 或者一次性购买JAVA 基础总计0个答案 (总共需要0积分)
账号未激活 账号未激活,功能受限。 请点击激活
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

3分24秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器。 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)。 chrome 的 视频下载插件会影响播放,如 IDM 等,请关闭或者切换其他浏览器


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+" "); } } }


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2025-01-09 合并两个长度在5-10的整数元素数组
Mars_Blue




如代码
  public int[] mergeArr() {
    class Func {
      int[] getRandomArr(int minLen, int maxLen) {
        int a = (int) Math.floor(Math.random() * (maxLen-minLen)+minLen);
        int[] a1 = new int[a];
        for (int i = 0; i < a1.length; i++) {
            a1[i] = (int) (Math.floor(Math.random() * 100)); 
        }
        return a1;
      } 
    }

    Func f = new Func();
    int[] a1 = f.getRandomArr(5, 10);
    int[] a2 = f.getRandomArr(5, 10);
    int[] a3 = new int[a1.length + a2.length];

    System.arraycopy(a1, 0, a3, 0, a1.length);
    System.arraycopy(a2, 0, a3, a1.length, a2.length);
    
    return a3;
  }

							





回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2024-06-05 个人浅答
带动




无问题
public static void main(String[] args) {
        int alength= (int)(Math.random()*5)+5;
        int blength= (int)(Math.random()*5)+5;
        int a[] = new int[alength];
        int b[] = new int[blength];
        for (int i=0;i<alength;i++){
            a[i]= (int)(Math.random()*100);
        }
        for (int i=0;i<blength;i++){
            b[i]= (int)(Math.random()*100);
        }
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        System.out.println(" ");
        for (int i = 0; i < b.length; i++) {
            System.out.print(b[i] + " ");
        }
        System.out.println(" ");
        int clength= a.length+b.length;
        int c[]= new int[clength];
        System.arraycopy(a,0,c,0,a.length);
        System.arraycopy(b,0,c,a.length,b.length);
        System.out.println(" ");
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i] + " ");
        }





    }

							


4 个答案

buds
答案时间:2024-12-04
import java.util.Random; public class Test { public static void main(String[] args) { Random random = new Random(); int[] arr01 = new int[random.nextInt(6) + 5]; int[] arr02 = new int[random.nextInt(6) + 5]; int[] arr03 = new int[arr01.length + arr02.length]; for (int i = 0; i < arr01.length; i++) { arr01[i] = random.nextInt(21); arr02[i] = random.nextInt(21); } System.out.println("========数组01=========="); for (int each : arr01) { System.out.print(each + " "); } System.out.println("\n===========数组02=========="); for (int each : arr02) { System.out.print(each + " "); } System.out.println("\n============数组03============="); System.arraycopy(arr01, 0, arr03, 0, arr01.length); System.arraycopy(arr02, 0, arr03, arr01.length, arr02.length); for (int each : arr03) { System.out.print(each + " "); } } }

outis
答案时间:2024-09-24
wwwzz
答案时间:2024-09-11
这样做

织织
答案时间:2024-06-07
int a [] = new int[]{18,62,68,82,65,9}; int b[] = new int[8]; for (int i = 0; i < b.length; i++) { b[i] = (int) (Math.random() * 100); } 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("a数组:" + Arrays.toString(a)); System.out.println("b数组:" + Arrays.toString(b)); System.out.println("c数组:" + Arrays.toString(c));



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2023-07-28 练习
2023-02-08 为什么我这个代码运行下来有时候就出错有时候不出错,是因为数组溢出了吗
2022-08-24 合并数组答案


提问太多,页面渲染太慢,为了加快渲染速度,本页最多只显示几条提问。还有 148 条以前的提问,请 点击查看

提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 JAVA 基础-数组-复制数组 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图