当我需要时使用什么数据结构
- 按优先级访问对象 - 出列
- 按名称/ID 访问对象以更新优先级
使用 Java 的 PriorityQueue,我不能直接通过名称/id 属性访问节点,可以吗?
我在考虑使用优先级队列和 TreeMap,这样我就可以在 log(n) 时间内按名称搜索,然后修改优先级。但我怀疑队列会知道这一点吗?在那种情况下,我需要删除并重新添加节点吗?这值得开销吗?删除/重新添加节点有多复杂?
当我需要时使用什么数据结构
使用 Java 的 PriorityQueue,我不能直接通过名称/id 属性访问节点,可以吗?
我在考虑使用优先级队列和 TreeMap,这样我就可以在 log(n) 时间内按名称搜索,然后修改优先级。但我怀疑队列会知道这一点吗?在那种情况下,我需要删除并重新添加节点吗?这值得开销吗?删除/重新添加节点有多复杂?