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


问答区域    
2019-01-15 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
lanz



int[] a = new int[(int) (5+Math.random()*5)]; int[] b = new int[(int) (5+Math.random()*5)]; for (int i = 0; i < a.length; i++) { a[i] = (int) (Math.random() * 100); } for (int in = 0; in < b.length; in++) { b[in] = (int) (Math.random() * 100); } int[] c=new int[a.length+b.length]; System.out.println("数组a内容:"); System.out.println(Arrays.toString(a)); System.out.println("数组b内容:"); System.out.println(Arrays.toString(b)); System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c,b.length, b.length ); System.out.println("数组c内容:"); System.out.println(Arrays.toString(c));
		int[] a = new int[(int) (5+Math.random()*5)];
		int[] b = new int[(int) (5+Math.random()*5)];
		for (int i = 0; i < a.length; i++) {
			a[i] = (int) (Math.random() * 100);
			
		}
		for (int in = 0; in < b.length; in++) {
			b[in] = (int) (Math.random() * 100);
		}
		int[] c=new int[a.length+b.length];
		System.out.println("数组a内容:");
		System.out.println(Arrays.toString(a));
		System.out.println("数组b内容:");
		System.out.println(Arrays.toString(b));
		System.arraycopy(a, 0, c, 0, a.length);
		System.arraycopy(b, 0, c,b.length, b.length );
		System.out.println("数组c内容:");
		System.out.println(Arrays.toString(c));
		
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
	at java.lang.System.arraycopy(Native Method)
	at cs.Y.main(Y.java:30)


2 个答案

lanz 答案时间:2019-01-15
数组a内容: [92, 30, 42, 56, 6, 23, 84, 80, 81] 数组b内容: [70, 18, 95, 67, 1, 33] 数组c内容: [92, 30, 42, 56, 6, 23, 84, 80, 81, 70, 18, 95, 67, 1, 33]

lanz 答案时间:2019-01-15
int[] a = new int[(int) (5+Math.random()*5)]; int[] b = new int[(int) (5+Math.random()*5)]; for (int i = 0; i < a.length; i++) { a[i] = (int) (Math.random() * 100); } for (int in = 0; in < b.length; in++) { b[in] = (int) (Math.random() * 100); } int[] c=new int[a.length+b.length]; System.out.println("数组a内容:"); System.out.println(Arrays.toString(a)); System.out.println("数组b内容:"); System.out.println(Arrays.toString(b)); System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c,a.length, b.length ); System.out.println("数组c内容:"); System.out.println(Arrays.toString(c));




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





2019-01-14 交作业
RareCZJ



交作业了
package Demo4;

public class Sz_copy_test {
	public static void main(String[] args) {
		int a = (int)(Math.random()*5+6);
		int b = (int)(Math.random()*5+6);
		int [] sza = new int[a];
		int [] szb = new int[b];
		for(int i = 0;i<sza.length;i++) {
			sza[i] = (int)(Math.random()*100);
		}
		for(int i = 0;i<szb.length;i++) {
			szb[i] = (int)(Math.random()*100);
		}
		System.out.println("数组a的内容:");
		for(int showsz : sza) {
			System.out.print(showsz+" ");
		}
		System.out.println();
		System.out.println("数组b的内容:");
		for(int showsz : szb) {
			System.out.print(showsz+" ");
		}
		int [] szc = new int[a+b];
		System.arraycopy(sza, 0, szc, 0, sza.length);
		System.arraycopy(szb, 0, szc, sza.length, szb.length);
		System.out.println();
		System.out.println("数组c的内容:");
		for(int showsz : szc) {
			System.out.print(showsz+" ");
		}
		
	}
}

							






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





2019-01-14 交作业
2018-12-30 修改-合并数组
2018-12-30 交作业
2018-12-29 交作业 应该是完全实现了
2018-12-28 交作业
2018-12-25 交作业,感觉你们的好多都没按要求来啊,并且代码好长啊
2018-12-19 交作业
2018-12-19 交作业
2018-12-17 作业
2018-12-14 交作业,比较全了
2018-12-12 合并数组
2018-12-12 合并数组
2018-12-10 答案
2018-12-06 合并数组!
2018-11-24 交作业
2018-11-19 作业
2018-11-19 作业
2018-11-14 数组合并
2018-11-12 复制数组作业
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了