我假设你的意思是ArrayList当你说"数组"时,因为在Java中你不能"添加"到一个完整的数组.
首先,如果你"插入到最后",你实际上是在追尾,而不是"插入".这种区别很重要,因为在任意位置插入 ArrayList是O(n)操作,因为右边的所有元素必须沿着一个位置"移位",以便为插入的元素腾出空间.
添加到(尾部)a LinkedList始终是O(1)(恒定时间)操作.
添加到ArrayList通常是O(1)操作,但如果后备阵列已满,则可能是O(n)操作,因为必须分配新数组并复制每个元素.在数组未满的一般情况下,ArrayList的性能(稍微)比LinkedList快,但差异非常小.
两者的摊销成本是相同的,但如果每次都需要恒定时间,则只有LinkedList才能这样做.
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |