PriorityBlockingQueue在java中的原理

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.二叉树概念

二叉堆:一颗完全二叉树,它非常适合用数组进行存储,对于数组中的元素 a[i],其左子节点为 a[2*i+1],其右子节点为 a[2*i + 2],其父节点为 a[(i-1)/2],其堆序性质为,每个节点的值都小于其左右子节点的值。二叉堆中最小的值就是根节点,但是删除根节点是比较麻烦的,因为需要调整树。

2.构造方法

//默认容量为11
publicPriorityBlockingQueue(){
this(DEFAULT_INITIAL_CAPACITY,null);
}
//传入初始容量
publicPriorityBlockingQueue(intinitialCapacity){
this(initialCapacity,null);
}
//传入初始容量和比较器
//初始化各变量
publicPriorityBlockingQueue(intinitialCapacity,
Comparator<?superE>comparator){
if(initialCapacity<1)
thrownewIllegalArgumentException();
this.lock=newReentrantLock();
this.notEmpty=lock.newCondition();
this.comparator=comparator;
this.queue=newObject[initialCapacity];
}

3.继承结构

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容