java - 为什么链表更快

标签 java linked-list

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

最佳答案

对于链表,没有限制它应该保存在连续的内存中,因此只要内存中有空间,JVM 就会将对象放在那里并从列表的最后一个元素指向该对象。

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

关于java - 为什么链表更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27290897/

相关文章:

c++ - 在 C++ 中打印链表

c - 如何在C中的链表中释放不同大小的分配内存

java - HttpOnly 标志不起作用

java - 如何用java编写soap客户端?

java - 在 Java 中加载 ONNX 模型

java - 如何将单元格的背景颜色设置为任意 RGB 值?

c++ - 链表推送方法

c - 将节点插入链表末尾

java - ApplicationClass 类NotFoundException

java - Java 升序循环链表