在Java中删除ArrayList的最后一个对象

阿里安:

我想快速删除最后一个对象ArrayList

我知道这remove(Object O)需要O(n)ArrayList,但是我想知道是否可以在恒定时间内执行此操作,因为我只想删除最后一个对象?

内森·休斯(Nathan Hughes):

请参阅的文档ArrayList#remove(int),如以下语法所示:

list.remove(list.size() - 1)

这是它的实现方式。elementData确实背衬阵列上的查找(因此它可以切断它从阵列松),这应该是恒定的时间(因为JVM知道一个对象引用的大小,它可以计算偏移量的条目的数量),并且numMoved0用于这个案例:

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;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在一个ArrayList的Java问题初学Java的删除对象

从1个arraylist中删除对象并添加到另一个

列表中的最后一个对象在删除后不会被删除。何时有效删除?

Java-从ArrayList中删除最后一个已知项目

如何使用Java ArrayList删除对象的一个实例

如何仅修复Java ArrayList中重复的循环中的最后一个对象

只返回ArrayList中的最后一个元素

仅删除字符串ArrayList中的最后一个单词

根据Java中另一个arraylist中的对象值对arraylist进行排序

从对象数组中删除所有但最后一个相似的键

从对象数组中删除最后一个对象。

我的Hashmap对象值列表对象仅返回我放置在ArrayList <Map <String,Object >>>();中的最后一个对象;

删除数组中的最后一个空格-Java

在Java中制作退格按钮以删除Textview中的最后一个字符

从Java中的另一个类中删除arraylist中的指定对象

在删除操作中,api始终会删除提供的任何用户名或密码的最后一个json对象?

在Android中仅显示最后一个ArrayList

过滤对象数组-删除字符串中的最后一个单词

从C ++中的集合中删除最后一个元素

如何基于Java中的最后一个字符对arraylist进行排序?

从数组中删除特定对象会继续删除最后一个项目

Java中的ArrayList仅打印列表中的最后一个对象

在ArrayList中找到一个对象并将其删除

java中如何从链表中删除一个对象

在json对象数组中添加重复记录并删除最后一个重复

从json对象的最后一个对象中删除逗号

最终都等于最后一个对象的对象的 ArrayList

Java:删除列表中的一个对象

Arraylist 从 url 获取最后一个对象。并在最后一个对象 Java 中将 append(";") 替换为 a(" ")