//数组拷贝-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)); }
[注]:上述四种拷贝数组的方法中,方法三速度最快,方法二三用的最多;上述四种方法都是浅拷贝。