java - 使用多个队列而不是一个 PriorityQueue

标签 java

目前,我正在为我的生产者-消费者系统使用 PriorityBlockingQueue,但由于我只有 3 个不同的优先级,所以我考虑使用 3 个不同的 BlockingQueue。

这样插入元素时不需要做任何工作。

这种方法是否更有效?为什么?

最佳答案

当然,这种方式更有效,因为它的插入时间为 O(1),而优先级队列的插入时间为 O(log N)

它遵循 counting sort计算每个元素的数量并相应地输出它们的想法。计数排序还利用了所有输入元素都落入一个狭窄值范围的事实。

关于java - 使用多个队列而不是一个 PriorityQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21218050/

相关文章:

java - Java中枚举类的初始化

java - 为什么审计返回空版本

Java泛型和覆盖

java - 检测触摸按压与长按与 move ?

java - 通过 getIntent() putExtra() 传递图像

java - JVM——子类方法的执行顺序和@override的使用

java - 我如何创建一个使用 Apache Spark 的 RESTFul 应用程序,特别是后端的 Streaming

java - 在 AngularJs 中单击提交按钮时如何发送选定的文件列表

java - 如何检查整个数组?

java - getCanonicalFile 和 getAbsoluteFile 返回当前(项目)目录,而不是预期的目录