una - Eliminando el último objeto de ArrayList en Java
metodo remove arraylist java (1)
Consulte la documentación de ArrayList#remove(int)
, como se ArrayList#remove(int)
en la siguiente sintaxis:
list.remove(list.size() - 1)
Así es como se implementa. elementData
realiza una búsqueda en la matriz de respaldo (por lo que puede cortarla de la matriz), que debe ser de tiempo constante (ya que la JVM conoce el tamaño de una referencia de objeto y el número de entradas que puede calcular la compensación), y numMoved
es 0
para este caso:
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;
}
Quiero eliminar el último objeto de una ArrayList
rápidamente.
Sé que remove(Object O)
toma O(n)
en ArrayList
, pero me pregunto si es posible hacerlo en tiempo constante ya que solo quiero eliminar el último objeto.