使用System.arraycopy()实现数组之间的复制

简介: System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是:public static void arraycopy(Object src, int srcPos, ...
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).
相关文章
Arrays.asList之后不要调用修改操作
Arrays.asList之后不要调用修改操作
|
4月前
ES6的Array.from({length:N})方法创建长度为N的undefined数组,等价于 [...Array(N)]
ES6的Array.from({length:N})方法创建长度为N的undefined数组,等价于 [...Array(N)]
|
8月前
|
Java
Java 数组中System.arraycopy()方法和System类中相关的其他方法的使用详解
Java 数组中System.arraycopy()方法和System类中相关的其他方法的使用详解
32 0
|
10月前
|
JavaScript API
Array.apply(null,{length: 99}) 逻辑解析
Array.apply(null,{length: 99}) 逻辑解析
54 0
|
C++ 存储 Java
Arrays.copyOf()与System.arraycopy()的区别
Arrays.copyOf()与System.arraycopy()的区别
139 0
Arrays.copyOf()与System.arraycopy()的区别
有关使用Arrays.asList(array) 转换成List集合之后,对其进行操作抛出UnsupportedOperationException异常的问题
有关使用Arrays.asList(array) 转换成List集合之后,对其进行操作抛出UnsupportedOperationException异常的问题
83 0
|
Java
Java中Math类、System类、toString方法、equals方法及冒泡排序实现
Math类、System类、toString方法、equals方法及冒泡排序实现的简单示例
172 0
Java中Math类、System类、toString方法、equals方法及冒泡排序实现
|
Java C++
【Java基础】探索List和Map循环遍历删除问题
Java代码写的其实不多,上周写List和Map的遍历,需要删除里面的元素时,直接就抛出异常,因为接触Java时间并不长,这种方式之前也很少使用,所以感觉这里肯定有坑,然后Java对List和Map的遍历方式也是五花八门,今天想花点时间研究了一下。
448 0
【Java基础】探索List和Map循环遍历删除问题
|
Java
【Java数组转集合】Arrays.asList() 方法(案例详解)
Java基础之Arrays.asList() 方法案例详解!
130 0
【Java数组转集合】Arrays.asList() 方法(案例详解)