System.arraycopy()实现数组之间的复制
2016-05-10 13:13
351 查看
System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置的起始位置; length:复制的长度。 注意:src
and dest都必须是同类型或者可以进行转换类型的数组. 有趣的是这个函数可以实现自己到自己复制,比如: int[] fun ={0,1,2,3,4,5,6}; System.arraycopy(fun,0,fun,3,3); 则结果为:{0,1,2,0,1,2,6}; 实现过程是这样的,先生成一个长度为length的临时数组,将fun数组中srcPos 到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组,0,fun,3,3).
Java System.arraycopy()方法用法实例教程,复制指定的源数组的数组,在指定的位置开始,到目标数组的指定位置
java.lang.System.arraycopy() 方法复制指定的源数组的数组,在指定的位置开始,到目标数组的指定位置。阵列组件的一个子序列被复制从由src引用的源数组到目标数组引用bydest。复制的组件的数量是相等的length 参数.
组成部分源数组中的位置srcPos到srcPos + length-1复制到的位置的destPos到destPos + length - 1,目标数组。
以下是java.lang.System.arraycopy()方法的声明
src -- 这是源数组.
srcPos -- 这是源数组中的起始位置。
dest -- 这是目标数组。
destPos -- 这是目标数据中的起始位置。
length -- 这是一个要复制的数组元素的数目。
此方法不返回任何值。
IndexOutOfBoundsException -- 如果复制会导致访问数组边界之外的数据
ArrayStoreException -- 如果src数组中的元素不能被存储到dest数组中,因为类型不匹配
NullPointerException -- 如果src或dest为null
下面的例子说明了如何使用java.lang.System.arraycopy()方法。
让我们来编译和运行上面的程序,这将产生以下结果:
and dest都必须是同类型或者可以进行转换类型的数组. 有趣的是这个函数可以实现自己到自己复制,比如: int[] fun ={0,1,2,3,4,5,6}; System.arraycopy(fun,0,fun,3,3); 则结果为:{0,1,2,0,1,2,6}; 实现过程是这样的,先生成一个长度为length的临时数组,将fun数组中srcPos 到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组,0,fun,3,3).
Java System.arraycopy()方法用法实例教程,复制指定的源数组的数组,在指定的位置开始,到目标数组的指定位置
描述
java.lang.System.arraycopy() 方法复制指定的源数组的数组,在指定的位置开始,到目标数组的指定位置。阵列组件的一个子序列被复制从由src引用的源数组到目标数组引用bydest。复制的组件的数量是相等的length 参数.组成部分源数组中的位置srcPos到srcPos + length-1复制到的位置的destPos到destPos + length - 1,目标数组。
声明
以下是java.lang.System.arraycopy()方法的声明public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
参数
src -- 这是源数组.srcPos -- 这是源数组中的起始位置。
dest -- 这是目标数组。
destPos -- 这是目标数据中的起始位置。
length -- 这是一个要复制的数组元素的数目。
返回值
此方法不返回任何值。
异常
IndexOutOfBoundsException -- 如果复制会导致访问数组边界之外的数据ArrayStoreException -- 如果src数组中的元素不能被存储到dest数组中,因为类型不匹配
NullPointerException -- 如果src或dest为null
实例
下面的例子说明了如何使用java.lang.System.arraycopy()方法。package com.yiibai; import java.lang.*; public class SystemDemo { public static void main(String[] args) { int arr1[] = { 0, 1, 2, 3, 4, 5 }; int arr2[] = { 0, 10, 20, 30, 40, 50 }; // copies an array from the specified source array System.arraycopy(arr1, 0, arr2, 0, 1); System.out.print("array2 = "); System.out.print(arr2[0] + " "); System.out.print(arr2[1] + " "); System.out.print(arr2[2] + " "); System.out.print(arr2[3] + " "); System.out.print(arr2[4] + " "); } }
让我们来编译和运行上面的程序,这将产生以下结果:
array2 = 0 10 20 30 40
public class arraycopy { public static void main(String[] args) { // TODO Auto-generated method stub int s[] = { 1,2,3,4,5,6 }; int d[] = { 10,9,8,7,6,5,4,3,2,1 }; System.arraycopy( s, 0, d, 0, s.length ); for (int i = 0; i < s.length; i++ ) System.out.println("s[" + 1 + "]=" + s[i]); for (int i = 0; i < d.length; i++ ) System.out.println("d[" + i + "]=" + d[i]); } } 输出结果: s[1]=1 s[1]=2 s[1]=3 s[1]=4 s[1]=5 s[1]=6 d[0]=1 d[1]=2 d[2]=3 d[3]=4 d[4]=5 d[5]=6 d[6]=4 d[7]=3 d[8]=2 d[9]=1
相关文章推荐
- ganglia集群的搭建与hadoop集群的搭建
- 网上调查赚钱网站
- linux 常用命令
- 用于wordpress站点的nginx服务器配置(PHP)
- 八爪鱼招标网的百度权重升为2了,独立IP也从0快速发展为1000
- 每秒处理10万订单乐视集团支付架构
- linux camera ---1
- centos 7 开放 80端口
- 在centos上安装nfsen及插件
- Tomcat the java_home environment variable is not defined correctly
- Linux 文件系统类型介绍
- 小伙,你也是一名架构师
- 在windows和linux下分别部署Solr服务
- Android Sensor传感器系统架构初探
- Shell脚本 curl获取必应每日壁纸(Mac OS)
- Hadoop Join
- Linux和Windows的区别
- Shell之实现多线程
- 迁移到 Centos 7 遇到的一些常见问题
- linux故障判断