要使用的数据结构:需要按优先级和名称访问

时间:2012-09-12 13:10:07

标签: java priority-queue

我需要时使用什么数据结构

  • 按优先级访问对象 - 出列
  • 按名称/ ID访问对象以更新优先级

使用Java的PriorityQueue,我无法直接通过其name / id属性访问节点吗?


我正在考虑使用优先级队列和TreeMap,以便我可以在log(n)时间按名称搜索,然后修改优先级。但我怀疑队列会知道吗?在这种情况下,我需要删除并重新添加节点?这值得开销吗?删除/重新添加节点有多复杂?

1 个答案:

答案 0 :(得分:1)

  

在这种情况下,我需要删除并重新添加节点吗?

  

值得开销吗?

这取决于您的要求。只有你知道。

  

删除/重新添加节点有多复杂?

从PriorityQueue插入和删除是O(log n)。