当前位置: 首页 > 知识库问答 >
问题:

为什么列表优先于队列?

锺离德庸
2023-03-14

所以我的问题是为什么not Queue比list更受欢迎。我相信一定有某种原因,但不知何故,我错过了这种理解?

更新:-这是我明确的要求

1)加法发生在末尾,应该很快。可能是O(1)

3)由于查找将基于om索引进行,因此两者都将是O(1)

共有1个答案

宋宇
2023-03-14

如果我更改实现,我更喜欢使用任何能够提供最简单迁移所需的最小功能集的引用。

如果我只需要添加和删除,我可以做

Collection<T> myCol = new // pick any implementation

如果我需要按照FIFO顺序获取它们,我不会使用list,因为list接口没有弹出最早的方法。它有一个弹出索引0的方法,但这是不一样的。如果我需要FIFO排序,我必须放弃使用队列引用。

Queue<T> myQueue = new // pick any implementation
ArrayDeque<T> myQueue = new ArrayDeque<T>(); // yuck! don't use a concrete reference!
 类似资料:
  • 本文向大家介绍什么是Java优先级队列(Priority Queue)?相关面试题,主要包含被问及什么是Java优先级队列(Priority Queue)?时的应答技巧和注意事项,需要的朋友参考一下 考察点:队列 PriorityQueue是一个基于优先级堆的无界队列,它的元素是按照自然顺序(natural order)排序的。在创建的时候,我们可以给它提供一个负责给元素排序的比较器。Priori

  • 问题内容: 我在服务器上有一个网站。主页为example.com/index.php。 好的,我将一个index.html命名文件上传到服务器(根目录),当我在浏览器的URL栏中键入站点的域时,感到很惊讶,因为index.html页面已加载。 (example.com-> example.com/index.html)所以不是我想要的。 我的问题:为什么会这样?为什么index.html比inde

  • 我曾尝试在循环加权图上使用Djikstra的算法,而不使用优先级队列(堆),结果成功了。 Wikipedia指出,该算法的原始实现不使用优先级队列,而是在O(V2)时间内运行。 现在,如果我们只删除优先级队列并使用普通队列,则运行时间是线性的,即O(ve)。 有人能解释一下为什么我们需要优先队列吗?

  • 问题内容: 我正在尝试根据文档中提供的示例实现优先级队列。文件:priorityQueue 简而言之,它看起来像这样(不包括所有内容): 该文件中: 如您所见,在与示例进行比较时,我不使用指针,因为这样做会给我一个编译错误,告诉我我的优先级队列未正确实现接口。 这会给我带来以下问题: 该项目未附加到队列中。 我试图写出队列指针地址,它显示了不同的地址。这就解释了为什么它不起作用,但是切片不是地图长

  • 几天来,我一直在试图弄清楚一个关于最近任务的问题,但我似乎无法理解它。问题如下: 创建一个PriorityQueue类,该类包含两个字段:NoopPriorities和LinkedList…它应该有一个构造函数,该构造函数接受一个int值。将该值分配给NoopPrioities…同时,添加与NumberOfPrioritiorities一样多的LinkedList。获取优先级和对象的Enqueue

  • 我在模拟中使用下面的代码。因为我一遍又一遍地调用dijkstra方法,性能对我来说非常关键。,我使用PriorityQueue将图的节点保持相对于它们到源的距离的升序。PriorityQueue为我提供了以O(log n)复杂度访问距离最小的节点。但是,要在重新计算节点距离后保持节点有序,我需要首先删除节点,而不是再次添加它。我想可能有更好的方法。我感谢任何反馈。提前感谢所有社区。