【问题标题】:Defining priority queue定义优先级队列
【发布时间】:2022-01-07 17:52:25
【问题描述】:

考虑以下优先级类class PriorityQueue<E extends Comparable<E>> extends Queue<E> { 的声明,与Java 包中提供的声明相比,后者
有一个比较器作为要比较的属性。相反,这会强制为其维护优先级队列的对象具有其可比较的实现。
这种方法有什么优缺点吗?

我的想法:
我能想到的一件事是,这将强制优先级队列使用对象比较器,并且不会提供实现其自定义比较器的能力,因为类的用户
可能希望基于一些不同的构建队列比较器。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: java priority-queue


【解决方案1】:

考虑以下优先级类的声明 PriorityQueue extends Queue {}

如果你想把一个对象放入队列中,而这个对象没有实现Comparable接口。

无需限制放置对象必须实现Comparable接口,更加灵活。

对于同一个对象,不同场景下比较的逻辑可能不一致,所以需要从外部传入一个comparator,对象本身不需要实现一个comparator

(以上是我的个人想法)

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 1970-01-01
    • 2011-12-20
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    相关资源
    最近更新 更多