我想写一个有界优先队列类。这本质上是一个优先级队列,但对队列中可以存在的元素数量有限制。因此,如果我插入一个新元素并且队列已满,那么我会查看该元素是否大于队列的顶部。如果是,那么我丢弃新元素。如果不是,那么我删除顶部元素并插入这个新元素(队列会自动重新组织)。我目前已经实现了 BoundedPriorityQueue 作为派生自具有“maxCount”成员的 PriorityQueue 并且我已经覆盖了 add 方法并添加了我上面描述的功能。我想知道我是否应该考虑以组合方式而不是继承方式来做。不过,我目前的方法似乎很简单。
如果我要进行组合,那么我必须从 AbstractQueue 类派生,实现方法,然后用它组合优先级队列。
谢谢,
文克