java之实现任意数组拷贝

java之实现任意数组拷贝_第1张图片
image.png

这一路走走停停,顺着少年漂流的痕迹,迈出车站的前一刻,竟有些犹豫.....风吹起了从前,最近喜欢单曲循环这首歌《起风了》,频幕对面的老铁们可以去听听,感觉不错哦,今天我们来了解一下,在java中如何实现数组的任意拷贝,我们可能经常使用arrayCopy这个方法,那我们今天就来实现一下自己的arrayCopy方法,老铁们觉得怎么样?直接上代码吧:

我们先来了解arrayCopy这个方法所需要的参数:

> public static void arrayCopy(Object,src,int srcPos, Object dest, int  destPos, int length)
 参数:
 src:源数组
 srcPos:源数组中的起始位置
 dest:目标数组
 destPos:目标数组中的起始位置
 length:要复制数组元素的数量

在进行数组拷贝的过程中,我们需要判断该数组是否为空等,防止抛异常,在官方的API中我们可以发现:

java之实现任意数组拷贝_第2张图片
QQ截图20180506205747.png

从上面API中可以发现,这些异常我们可以避免,so 直接从代码看:

代码示例:
   public class ArrayCopyDemo {
       public static void main(String[] args) {
     定义原数组
     int[] src = new int[] {1,2,3,4,5,6,7,8,9,10};
     目标数组的初始容量
     int[] dest= new int[10];

        arraycopy(src,2,dest,3,4);
       System.out.println(Arrays.toString(dest));

}

   public static void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length)

{
    
    if (src == null || dest == null) {

        throw new NullPointerException("源和目的数组不能为空");
    }
    if (!src.getClass().isArray()|| !dest.getClass().isArray() ) {

        throw  new ArrayStoreException("源和目标必须是数组");

    }

    if (srcPos < 0 ||destPos < 0 || length <0|| srcPos+length > Array.getLength(src)
            || destPos +length > Array.getLength(dest)) {

         throw  new IndexOutOfBoundsException("索引越界");
    }
    if (src.getClass().getComponentType() != 
    dest.getClass().getComponentType()) {
       throw new ArrayStoreException("源和目标元素类型要一致");
    }
    for (int index = srcPos; index 
结果如下:
java之实现任意数组拷贝_第3张图片
QQ截图20180506211219.png

哈哈,很简单吧,我们实现了数组拷贝,自己可以动手试试!!!!

你可能感兴趣的:(java之实现任意数组拷贝)