how2j.cn


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

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



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



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

步骤 1 :

复制数组

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

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 :

练习-合并数组

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

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

答案-合并数组

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

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


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公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-11-14 数组合并
xwyjrcmbs



[53 10 95 90 94 ] [3 21 73 96 74 ] [53 10 95 90 94 3 21 73 96 74 ]
package j2se;

public class HelloWorld {
	public static void main(String[] args) {
		int length1 = (int) (Math.random() * 5 + 5);
		int length2 = (int) (Math.random() * 5 + 5);
		int arr[] = getNumArr(length1);
		int arr2[] = getNumArr(length2);
		printArr(arr);
		printArr(arr2);
		
		int []arr3 = new int[length1+length2];
		System.arraycopy(arr, 0, arr3, 0, length1);
		System.arraycopy(arr2, 0, arr3, length1, length2);
		printArr(arr3);
	}

	// 得到一个随机数组
	public static int[] getNumArr(int length) {
		int[] arr = new int[length];
		for (int i = 0; i < arr.length; ++i) {
			int ranNum = (int) (Math.random() * 101);
			arr[i] = ranNum;
		
		}
	
		return arr;

	}

	// 输出数组
	public static void printArr(int arr[]) {
		System.out.print("[");
		for (int i = 0; i < arr.length; ++i) {
			System.out.print(arr[i]+" ");
		}
		System.out.println("]");
	}

}

							






答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-11-12 复制数组作业
Jiawei



复制数组作业
package com.company;
import java.util.Scanner;

public class Main {


    public static void main(String [] arg) {

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

        for(int i=0;i<array1.length;i++){
            array1[i] = (int)(Math.random()*100);
        }

        for(int i=0;i<array2.length;i++){
            array2[i] = (int)(Math.random()*100);
        }

        int array[] = new int[array1.length+array2.length];

        System.arraycopy(array1,0,array,0,array1.length);
        System.arraycopy(array2, 0,array,array1.length,array2.length);

        for(int each:array){
            System.out.println(each);
        }

    }
}

							






答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-11-11 int[5 + (int) (Math.random() * 100 % 6)] 需要考虑取值几率不一样吗
2018-11-05 我也试试
2018-10-27 作业
2018-10-26 交作业
2018-10-16 求解 得出的合并数组不对 哪里有问题?
2018-10-16 求解 为什么得出的合并数组不对 哪里有问题?
2018-10-12 交作业
2018-09-29 交作业
2018-09-24 交作业 2018-09-24
2018-09-24 交作业
2018-09-12 交作业
2018-09-12 交作业
2018-09-12 交作业咯
2018-09-11 交作业
2018-09-11 交作业
2018-09-11 交作业
2018-09-10 交作业
2018-09-07 交作业交作业
2018-09-07 交作业交作业
2018-09-05 作业
2018-09-04 谁能告诉我为什么复制不过去。
2018-09-03 复制数组的具体应用是?
2018-09-03 有问题 ,,哪位大佬帮看看
2018-09-03 有问题 ,,哪位大佬帮看看
2018-08-28 作业
2018-08-28 作业
2018-08-25 交作业
2018-08-25 思路清晰的话很简单
2018-08-22 足迹~
2018-08-17 交作业
2018-07-25 复制数组
2018-07-24 作业 进行冒泡排序
2018-07-24 交作业
2018-07-23 查到另一种取随机数的方式,不用强制转型,请问用这两种方法结果上有什么区别?
2018-07-20 交作业
2018-07-19 交作业
2018-07-07 交作业
2018-07-05 交作业
2018-07-04 日常作业
2018-05-30 做作业嘿嘿
2018-05-29 合并数组
2018-05-28 交作业
2018-05-25 交作业
2018-05-25 交作业
2018-05-15 交作业
2018-05-13 交作业
2018-05-12 合并作业
2018-05-11 赋值失败
2018-05-09 数组合并
2018-05-04 作业
2018-05-04 数组长度随机5~10,数组随机,合并
2018-05-04 组合
2018-04-27 作业
2018-04-25 交作业
2018-04-25 合并作业
2018-04-21 练习-合并数组
2018-04-20 交作业
2018-04-19 交作业-打卡
2018-04-19 【交作业】合并数组
2018-04-18 练习
2018-04-18 个人代码 发一下 嘻嘻
2018-04-18 完成了,有点长,求简化
2018-03-31 交作业打卡
2018-03-30 作业
2018-03-10 答案答案
2018-03-08 上答案啦,解题思路
2018-02-28 答案咯~~~
2018-02-13 答案
2018-02-13 答案
2018-01-04 随机产生数组长度,随机数填充数组
2018-01-03 作业
2017-12-28 答案
2017-12-20 答案
2017-12-16 作の业
2017-12-14 作業
2017-12-11 答案
2017-11-23 交个作业,记录自己
2017-11-18 合并数组-一枚菜鸟
2017-11-06 关于练习,我希望A/B的数据不重叠,请问这样的思路对吗?
2017-11-02 交作业~
2017-10-29 随机数中有可能会有相同的元 素 , 你们都不带考虑的吗?????
2017-10-22 交作业,不是用Arrays的copy写出来的
2017-10-20 合并数组
2017-10-20 交作业
2017-10-13 提示无法导入java.util.Arrays
2017-10-04 ..祝各位中秋快乐,原来的答案发错地方了
2017-10-03 个人代码
2017-09-23 老师,帮我看看~谢谢
2017-09-19 学习交流,望各位多多指教
2017-08-29 我的答案,请站长指正
2017-08-18 作业:复制数组
2017-08-16 关于Math.random()的取值范围
2017-08-01 我寫的參考答案
2017-07-22 增强型数组输不出来合并后的数组
2017-07-14 答案
2017-07-10 作业
2017-07-06 答案
2017-06-07 答案
2017-05-11 第二个数组部分变为0了
2017-03-27 合并
2017-02-24 答案
2017-02-08 求教为什么我输出出来的答案每一次都跳了一行,我想横排排列
2016-12-14 复制第一组数组没有问题,但是复制第二组数组时报错时什么原因?
2016-12-10 system.arraycopy
2016-08-29 我写的答案,要是有什么违反的可以直接删掉
2016-08-25 买不起答案
2016-08-23 数组容量问题
2016-08-22 这个问题怎么处理




提问之前请登陆
关于 JAVA 基础-数组-复制数组 的提问

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

上传截图