请参阅的文档
ArrayList#remove(int),如以下语法所示:
list.remove(list.size() - 1)
这是它的实现方式。
elementData确实背衬阵列上的查找(因此它可以切断它从阵列松),这应该是恒定的时间(因为JVM知道一个对象引用的大小,它可以计算偏移量的条目的数量),并且
numMoved是
0用于这个案例:
public E remove(int index) { rangeCheck(index); // throws an exception if out of bounds modCount++; // each time a structural change happens // used for ConcurrentModificationExceptions E oldValue = elementData(index); int numMoved = size - index - 1; if (numMoved > 0) System.arraycopy(elementData, index+1, elementData, index, numMoved); elementData[--size] = null; // Let gc do its work return oldValue;}


