• 技术文章 >java >java基础

    PriorityBlockingQueue在java中的原理

    小妮浅浅小妮浅浅2021-02-08 19:19:12原创2738

    本教程操作环境: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<? super E> 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的概念理解透彻,同时更好的运用其优先级的处理队列方法。

    专题推荐:java,priorityblockingqueue原理
    上一篇:java PriorityBlockingQueue的使用 下一篇:java中PriorityBlockingQueue的入队

    相关文章推荐

    • java中SynchronousQueue是什么意思• java中SynchronousQueue的原理• SynchronousQueue在java中的元素增减• java中SynchronousQueue的核心方法• java PriorityBlockingQueue的使用

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网