- 数组拷贝的四种方法
- for循环
//数组拷贝-for循环
public class TestDemo1 {
public static int[] copyArray(int[] array) {
int[] tmp = new int[array.length];
for (int i = 0;i < array.length;i++) {
tmp[i] = array[i];
}
return tmp;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
int[] ret = copyArray(array);
System.out.println(Arrays.toString(ret));
}
2.Arrays.copyof(int[] array,array.length);//返回一个新对象。
//方法二-copyOf
public class TestDemo1 {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int[] ret = Arrays.copyOf(array, array.length);
System.out.println(Arrays.toString(ret));
}
}
3.System.ararcopy(源数组,开始拷贝的位置,目的地数组,拷到那个位置,拷贝的长度);//native,由C/C++代码实现,运算速度快。
//方法三-System.arracopy
public class TestDemo1 {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int[] ret = new int[array.length];
System.arraycopy(array,0,ret,0,array.length);
System.out.println(Arrays.toString(ret));
}
4.array.clone//产生了副本,这个方法是object的克隆方法。
//方法四-clone
public class TestDemo1 {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
int[] ret = array.clone();
System.out.println(Arrays.toString(ret));
}
[注]:上述四种拷贝数组的方法中,方法三速度最快,方法二三用的最多;上述四种方法都是浅拷贝。