资讯专栏INFORMATION COLUMN

System.arraycopy方法解释

yexiaobai / 1900人阅读

摘要:源数组源数组要复制的起始位置目标数组将原数组复制到目标数组目标数组起始位置从目标数组的哪个下标开始复制操作复制源数组的长度例子如下源数组为目标数组为开始执行数组复制操作将源数组从数组下标开始的位长度的数组复制到目标数组从下标为的位置开始复制

**/*
 * @param      src      the source array.源数组
 * @param      srcPos   starting position in the source array.源数组要复制的起始位置
 * @param      dest     the destination array.目标数组(将原数组复制到目标数组)
 * @param      destPos  starting position in the destination data.目标数组起始位置(从目标数组的哪个下标开始复制操作)
 * @param      length   the number of array elements to be copied.复制源数组的长度
 * @exception  IndexOutOfBoundsException  if copying would cause
 *               access of data outside array bounds.
 * @exception  ArrayStoreException  if an element in the src
 *               array could not be stored into the dest array
 *               because of a type mismatch.
 * @exception  NullPointerException if either src or
 *               dest is null.
 */
public static native void arraycopy(Object src,  int  srcPos,Object dest, int destPos,int length);**

例子如下:

package test.demo;

    public class ArrayCopyTest {
        
        
        public static void main(String[] args) {
            char[] src = new String("hellow").toCharArray();
            char[] dest = new String("12345789").toCharArray();
            
            System.out.print("src源数组为:");
            for(char c : src){
                System.out.print(c);
            }
            
            System.out.print("
dest目标数组为:");
            for(char c : dest){
                System.out.print(c);
            }
            
            /*
             * 开始执行数组复制操作
             * 将源数组["h","e","l","l","o","w"]从数组下标0开始的4位长度的数组["h","e","l","l"]
             * 复制到目标数组["1","2","3","4","5","6","7","8"],从下标为3的位置开始
             */
            System.arraycopy(src,0,dest,3,4);
            
            System.out.print("
复制完成之后的目标数组为:");
            for(char c : dest){
                System.out.print(c);
            }
        }
    }

结果输出如下:
src源数组为:hellow
dest目标数组为:12345789
复制完成之后的dest目标数组为:123hell9

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72587.html

相关文章

  • System.arraycopy方法的简短总结

    摘要:相比遍历复制,此方法更加高效。原因很简单,该方法使用内存块整体读取与复制,相比的遍历寻址来说自然会快,不过这个速度优势在数组成员比较多的时候才会有较明显的体现。下面贴出方法中关键部分的方法代码 API使用场景 在JDK研发团队的开发过程中,对集合的操作过程中常会使用到此方法。 API参数 public static native void arraycopy( Objec...

    Michael_Lin 评论0 收藏0
  • 数组

    摘要:二数组扩容及拷贝数组的扩容数组是根据固定容量创建的,在必要的时候我们需要对数组进行扩容初始长度为下面决定需要对数组进行扩容对原数组进行内容拷贝在对数组进行拷贝时除了利用循环遍历数组元素进行拷贝外,推荐使用更高效的方法。 PS:如果觉得文章有什么地方写错了,哪里写得不好,或者有什么建议,欢迎指点。 一、认识数组 数组是一种线性表数据结构。它用一块连续的内存空间,来存储相同类型的一组数据。...

    Yuqi 评论0 收藏0
  • 从源码看Java集合之ArrayList

    摘要:集合之吃透增删查改从源码看初始化以及增删查改,学习。一初始化无参的构造器可以看到这个构造器初始化了一个空数组。指定长度的构造器这个构造器显式的指明了数组的长度,其实如果小于的话,在添加第一个元素的时候还是会扩充到长度为的数组。 Java集合之ArrayList - 吃透增删查改 从源码看初始化以及增删查改,学习ArrayList。 先来看下ArrayList定义的几个属性: priva...

    seasonley 评论0 收藏0
  • Java—System类入门学习

    摘要:第三阶段常见对象的学习类类包含一些有用的字段和方法,他不能被实例化用于垃圾回收终止正在运行的虚拟机。参数用作状态码,根据惯例,非表示异常终止返回从年月日到现在时间的毫秒数协调时间源数组。 第三阶段 JAVA常见对象的学习 System类 System类包含一些有用的字段和方法,他不能被实例化 //用于垃圾回收 public static void gc() //终止正在运行的java...

    anquan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<