您当前的位置: 首页 >  Java

_waylau

暂无认证

  • 7浏览

    0关注

    275博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Java数据结构及算法实战】系列012:Java队列06——数组实现的优先级阻塞队列PriorityBlockingQueue

_waylau 发布时间:2022-05-06 22:06:27 ,浏览量:7

PriorityBlockingQueue是基于数组实现的无界优先级阻塞队列。PriorityBlockingQueue与PriorityQueue类似,其中的元素按其自然顺序排序,或由队列构造时提供的比较器根据所使用的构造函数排序。优先级队列不允许空元素,依赖自然顺序的优先级队列也不允许插入不可比较的对象。相比于PriorityQueue而言,PriorityBlockingQueue一个最大的优势是线程安全的。

PriorityBlockingQueue是Java Collections Framework的一个成员。

1.   PriorityBlockingQueue的声明

PriorityBlockingQueue的接口和继承关系如下

public class PriorityBlockingQueue extends AbstractQueue

    implements BlockingQueue, java.io.Serializable {   …

}

完整的接口继承关系如下图所示。

从上述代码可以看出,PriorityBlockingQueue既实现了BlockingQueue和java.io.Serializable接口,又继承了java.util.AbstractQueue。其中,AbstractQueue是Queue接口的抽象类,核心代码如下。

2.   PriorityBlockingQueue的成员变量和构造函数

以下是PriorityBlockingQueue的构造函数和成员变量。

// 默认数组容量

private static final int DEFAULT_INITIAL_CAPACITY = 11;

// 最大数组容量

    private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

// 元素数组

    private transient Object[] queue;

// 队列中的元素个数

    private transient int size;

    // 比较器

    private transient Comparator

关注
打赏
1651845987
查看更多评论
立即登录/注册

微信扫码登录

0.0412s