【问题标题】:why linked list is faster [duplicate]为什么链表更快[重复]
【发布时间】:2015-02-02 03:33:03
【问题描述】:

我知道linkedlist 在 java 中的插入和删除速度更快,因为它们使用链表数据结构,即节点组。我试图理解为什么插入和删除速度更快。但我不明白。我所理解的是每个节点都由数据和对下一个节点的引用组成。现在,它的效率如何?我可以用简单的方式解释我吗?对不起,我不是计算机科学专业的学生。 刚完成学士商业.. :)

【问题讨论】:

  • 比什么快,究竟是什么?如果您要与数组进行比较,主要原因是因为数组具有固定大小,因此需要在插入/删除时“重新创建”
  • @Eran 你指向了一个同样重复的答案:stackoverflow.com/q/26737018/3584765 而不是原来的:stackoverflow.com/q/322715/3584765
  • @Eypros 我指出了同一个用户提出的同一个问题。
  • @Eran 我仍然不明白为什么你应该指出一个同样重复的问题,而不是原来的问题,即使它是同一个人的。这就像链式回答而不是直接回答。反正我已经说清楚了,不会再评论了

标签: java linked-list


【解决方案1】:

在链表的情况下,没有限制它应该保存在连续的内存中,所以只要内存中有空间,JVM就会把对象放在那里,并从链表的最后一个元素指向该对象。

但是在ArrayList的情况下,如果JVM没有找到连续的内存空间,JVM会找到可以容纳完整ArrayList的新内存区域,然后将完整列表复制到该空间,因此会增加开销。

【讨论】:

    猜你喜欢
    • 2022-11-25
    • 2011-07-23
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2019-04-06
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多