E remove(
int index) { //加锁finalReentrantLock lock =
this.lock; lock.lock(); try { Object[] elements=
getArray(); intlen =
elements.length; E oldValue=
get(elements, index); intnumMoved = len - index - 1
; if(numMoved == 0
) //如果要删除的是列表末端数据,拷贝前len-1个数据到新副本上,再切换引用setArray(Arrays.copyOf(elements, len - 1
)); else { //否则,将除要删除元素之外的其他元素拷贝到新副本中,并切换引用Object[] newElements =
newObject[len - 1
]; System.arraycopy(elements,0, newElements, 0
, index); System.arraycopy(elements, index+ 1
, newElements, index, numMoved); setArray(newElements); } return oldValue; } finally { //解锁 lock.unlock(); } }来源: http://www.cnblogs.com/chengxiao/p/6881974.html