我知道linkedlist
java中的插入和删除速度更快,因为它们使用链表数据结构,即一组节点。我试图理解为什么它的插入和删除速度更快。但我不明白。我所理解的是每个节点都由数据和对下一个节点的引用组成。现在,它是如何高效的呢?谁能用简单的方式解释一下我吗?抱歉,我不是计算机科学专业的学生。
刚刚完成商业学士学位..:)
最佳答案
对于链表,没有限制它应该保存在连续的内存中,因此只要内存中有空间,JVM 就会将对象放在那里并从列表的最后一个元素指向该对象。
但是对于ArrayList
来说,如果JVM没有找到连续的内存空间,JVM会找到可以容纳完整ArrayList
的新内存区域,然后将完整的列表复制到该空间,因此增加了开销。
关于java - 为什么链表更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27290897/