• public class BinaryHeapPriorityQueue<T> extends AbstractQueue<T> {
        private T[] queue;
        private int size;

        public BinaryHeapPriorityQueue(int max, Comparator<T> comparator) {
            super(comparator);
            this.queue = (T[]) new Object[max + 1];
        }

        @Override
        public void enqueue(T item) {
            this.queue[++size] = item;
            this.swim(size);
        }

        @Override
        public T dequeue() {
            T max = this.queue[1];
            exch(this.queue, 1, size--);
            this.queue[size + 1] = null; //释放内存
            this.sink(1);
            return max;
        }
        
         //省略其他函数
    }

    文中所有源码已放入到了github仓库https://github.com/silently9527/JavaCore

    最后(点关注,不迷路)

    文中或许会存在或多或少的不足、错误之处,有建议或者意见也非常欢迎大家在评论交流。

    最后,「写作不易,请不要白嫖我哟」,希望朋友们可以「点赞评论关注」三连,因为这些就是我分享的全部动力来源🙏


    本文分享自微信公众号 - 贝塔学JAVA(betajava)。
    如有侵权,请联系 support@oschina.cn 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    03-16 13:46