<分区>
使用链表而不是数组列表来实现 Queue 是否更好? 如果我 dequeue ,在喜欢的列表实现的情况下,过载会更少吗?
<分区>
使用链表而不是数组列表来实现 Queue 是否更好? 如果我 dequeue ,在喜欢的列表实现的情况下,过载会更少吗?
最佳答案
从 LinkedList 的开头出列一个元素所需的时间少于从 ArrayList 开始出列的时间。
这是因为ArrayList是基于数组的,当第一个元素被移除时,除dequeued之外的所有元素都需要左移一个位置。 ArrayList 中的元素数量越多,所需的时间就越长。
在 LinkedList 的情况下,无论列表有多大,只有恒定数量的引用需要更新才能使第一个元素出队。
当然,您可以从 ArrayList 的末尾出列元素,这将花费常数时间(大部分时间),但是添加一个新元素(到开头)将需要将所有元素移动一个位置到正确的。
关于java - Java队列的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882611/