PriorityBlockingQueue在java中的原理

PriorityBlockingQueue在java中的原理,第1张

PriorityBlockingQueue在java中的原理

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

1.二叉树概念

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

2.构造方法

// 默认容量为11
public PriorityBlockingQueue() {
    this(DEFAULT_INITIAL_CAPACITY, null);
}
// 传入初始容量
public PriorityBlockingQueue(int initialCapacity) {
    this(initialCapacity, null);
}
// 传入初始容量和比较器
// 初始化各变量
public PriorityBlockingQueue(int initialCapacity,
                             Comparator comparator) {
    if (initialCapacity < 1)
        throw new IllegalArgumentException();
    this.lock = new ReentrantLock();
    this.notEmpty = lock.newCondition();
    this.comparator = comparator;
    this.queue = new Object[initialCapacity];
}

3.继承结构

以上就是PriorityBlockingQueue在java中的原理,相信经过本篇的学习,大家已经对PriorityBlockingQueue的概念理解透彻,同时更好的运用其优先级的处理队列方法。‍

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3017573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-28
下一篇 2022-09-28

发表评论

登录后才能评论

评论列表(0条)

保存