在 Java 中移除 ArrayList 的最后一个对象
2022-09-01 00:27:29
我想快速删除最后一个对象。ArrayList
我知道这需要一个,但我想知道是否有可能在恒定时间内执行此操作,因为我只想删除最后一个对象?remove(Object O)
O(n)
ArrayList
我想快速删除最后一个对象。ArrayList
我知道这需要一个,但我想知道是否有可能在恒定时间内执行此操作,因为我只想删除最后一个对象?remove(Object O)
O(n)
ArrayList
请参阅 ArrayList#remove(int) 的文档
,如以下语法所示:
list.remove(list.size() - 1)
以下是它的实现方式。 对支持数组进行查找(因此它可以将其从数组中分离出来),这应该是常量时间(因为JVM知道对象引用的大小以及它可以计算偏移量的条目数),并且对于这种情况:elementData
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;
}
只需简单使用。
arraylist.remove(arraylist.size() - 1)