java – 为什么数组列表比LIFO行为的链接列表更快?

我写了一个算法,它有很多追加和删除项目到数据结构的末尾(基本上是先出后).

现在出于某种原因,当我使用ArrayList执行此操作时,它比LinkedList快得多,即使通过ArrayList也需要重定位的开销.它甚至没有快一点.里程更快!

为什么是这样?

最佳答案 好吧,每次插入LinkedList时,都会分配一个新对象.插入ArrayList时,只有在没有空间的情况下才会进行分配.此时它会占用可用空间,并且在空间不足之前不会再分配.因此,在LinkedList中创建对象的成本几乎肯定是差异.

点赞