java - Java队列的实现

标签 java algorithm

<分区>

使用链表而不是数组列表来实现 Queue 是否更好? 如果我 dequeue ,在喜欢的列表实现的情况下,过载会更少吗?

最佳答案

从 LinkedList 的开头出列一个元素所需的时间少于从 ArrayList 开始出列的时间。

这是因为ArrayList是基于数组的,当第一个元素被移除时,除dequeued之外的所有元素都需要左移一个位置。 ArrayList 中的元素数量越多,所需的时间就越长。

在 LinkedList 的情况下,无论列表有多大,只有恒定数量的引用需要更新才能使第一个元素出队。

当然,您可以从 ArrayList 的末尾出列元素,这将花费常数时间(大部分时间),但是添加一个新元素(到开头)将需要将所有元素移动一个位置到正确的。

关于java - Java队列的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882611/

相关文章:

java - 为什么 slf4j 的 Logger 没有一个方法可以同时接受消息的可变参数和异常?

java嵌套for循环空格和数字

c# - 向要显示的项目列表添加分隔符

java - KMP DFA前缀函数

algorithm - 置换算法的形式

algorithm - 收集数据来识别手绘几何图形的最佳算法和最佳方法是什么?

将巧克力 block 等分的算法

java - 需要将请求xml拆分成不同的xml

java - RMI+hibernate,客户端如何获取生成的id

java - 如何在java中对另一个 map 内的 map 的值求和?