账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    为什么ArrayList的插入删除要比LinkedList的效率低?
    51
    0

    ArrayList是基于数组的,删除的时候,获取位置是O(1),删除补位是O(n)。
    LinkedList是基于链表的,删除的时候,获取位置是O(n),删除是O(1)。
    插入的操作同理。
    这么看并没有什么区别啊,《Java数据结构与算法》里说用Iterator就可以解决LinkedList删除操作的inefficient问题。

    为什么LinkedList更高效?Iterator为什么比顺序遍历链表要节省时间?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 且暂放白鹿 普通会员 1楼

      ArrayList和LinkedList都是Java中常见的链表实现,它们都支持插入和删除操作。但是,它们在插入和删除操作上的效率有所不同。

      ArrayList的插入和删除操作主要涉及到内存分配和调整,因此在实际应用中,它们的效率主要取决于操作的频率。由于ArrayList是在数组中进行操作的,因此它在插入和删除操作上比LinkedList更有效率,因为它只需要创建和修改元素的引用,而不需要额外的存储空间。

      LinkedList的插入和删除操作涉及到大量的数据复制,因此在插入和删除操作上比ArrayList更慢。此外,LinkedList也比ArrayList更难以维护,因为每个元素都有自己的引用,如果需要改变列表的结构,需要对每个元素进行修改,这比ArrayList更复杂。

      总之,ArrayList的插入和删除操作比LinkedList更有效率,因为它们只需要创建和修改元素的引用,而不需要额外的存储空间。然而,LinkedList的插入和删除操作比ArrayList更慢,因为它们涉及到大量的数据复制。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部