System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。
其函数原型是:
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
src:源数组;
srcPos:源数组要复制的起始位置;
dest:目的数组;
destPos:目的数组放置的起始位置;
length:复制的长度。
注意:src and dest都必须是同类型或者可以进行转换类型的数组.
String src[] = new String[] { “1”, “2”, “3”, “4” };
删除下标为2的元素=3
System.arraycopy(src, index+1, src, index, src.length - index - 1);
{ “1”, “2”, “3”, “4” }
{ “1”, “3”, “4”, “4” }
可以将最后一位置为空
remove方法
@Override
public E remove(int index) {
// 检查我们的下标位置是否越界
rangeCheck(index);
// 获取要删除的对象
E oldValue = get(index);
//计算移动的位置
int numMoved = size - index - 1;
// 判断如果删除数据的时候 不是最后一个的情况下,将删除后面的数据往前移动一位
if (numMoved > 0) {
System.arraycopy(elementData, index + 1, elementData, index,
numMoved);
}
// 如果numMoved 为0的情况下,说明后面不需要往前移动,直接将最后一条数据赋值为null
elementData[--size] = null; // clear to let GC do its work
return null;
}