java语言中的数组复制函数。

原文:https://blog.csdn.net/just16cz/article/details/80385101
java语言中的数组复制函数。
1、 arraycopy()方法
函数原型:arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src: 原数组 srcPos:原数组起始的位置
dest:目的数组 destPos:目的数组的起始位置
length:所需复制数组的长度
需要注意的是要重新声明一个同类型且长度足够的数组,否则会出现异常。
下面举个例子:

package 笔记;
import java.util.Arrays;//注意这里
public class Example5_20_3 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] a={1,4,6,45,3,2,56,76,5,4,3,4,5,6};
		int[] b=new int[8];//注意数组的长度
		System.arraycopy(a, 0, b, 0, 8);
		System.out.println(Arrays.toString(b));
}
}

System.arraycopy(a ,0 ,b ,0 ,8)这句话可以翻译为:把数组a从下标为0的位置依次开始复制到数组b下标为0的位置,复制长度为8。

使用arraycopy()方法要实现指明方法的路径,即头文件的import语句。在我们编程过程中不必一条条地去指明路径,我们可以使用快捷键Ctrl+shift+o即可补全所缺的路径。

输出的结果是:[1, 4, 6, 45, 3, 2, 56, 76]

arraycopy()方法的主要缺点是必须事先创建好目的数组。

2、copyOf()方法

函数原型:copyOf(oringinal, int newlength)

oringinal:原数组 newlength:复制数组的长度

这个方法是从原数组的起始位置开始复制,复制的长度是newlength。相比较于前一种,这种相当于特殊的情况,只能从原数组的起始位置开始复制。


package 笔记;
import java.util.Arrays;
public class Example5_20_4 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] a= {3,456,4,3,2,45,5,65,35,6,5,5,43};
		int[] b=new int[8];
		b=Arrays.copyOf(a, 8);
		System.out.println(Arrays.toString(b));
	}
}在这里插入代码片

输出的结果是:[3, 456, 4, 3, 2, 45, 5, 65]

3、copyOfRange()方法

扫描二维码关注公众号,回复: 5328198 查看本文章

函数原型:copyOfRange(oringinal,int from, int to)

该方法是从original数组的下标from开始复制,到下标to结束

package 笔记;
import java.util.Arrays;
public class Example5_20_5 {
	public static void main(String[] args) {
		// TODO Auto-generated method stu
		int[] a= {3,45,32,42,34,2,1,57,4,3,56,4,65};
		int[] b=new int[8];
		b=Arrays.copyOfRange(a, 2, 10);
		System.out.print(Arrays.toString(b));
	}
}

输出的结果:[32, 42, 34, 2, 1, 57, 4, 3, 56]

猜你喜欢

转载自blog.csdn.net/weixin_43443278/article/details/87903191