Java数组的基本拷贝
Java中数组的拷贝主要使用了System.arraycopy(src, srcPos, dest, destPos, length)类。其中,src(Object对象)是操作数组源地址,dest(Object对象)是拷贝数组的目标地址,srcPos(int型)是开始拷贝的位置,destPos(int型)是拷贝到的位置,length(int型)是数组中拷贝数据的长度。
- 从一个数组拷贝到另一个数组
public static void testArrayCopy(){ String[] a1 = {"a","b","c","d"}; String[] a2 = new String[10]; System.arraycopy(a1, 1, a2, 6, 3); for (int i = 0; i < a2.length; i++) { System.out.println(i+"--"+a2[i]); } }
- 删除数组指定位置元素(本质是数组的自身拷贝)
public static void testArrayCopy2(){ String[] a1 = {"a","b","c","d","e"}; //String[] a2 = new String[5]; System.arraycopy(a1, 3, a1, 2, 2); a1[a1.length-1] = null; for (int i = 0; i < a1.length; i++) { System.out.println(i+"--"+a1[i]); } }
- 在数组指定位置插入元素(本质上是定义一个新数组,将原数组原封不动的拷贝进新数组中)
public static String[] extendsArray(String[] s1) { String[] s2 = new String[s1.length+10]; System.arraycopy(s1, 0, s2, 0, 3); for(String temp:s2){ System.out.println(temp); } return s2; }