Java 中的 PriorityQueue

关于优先队列:

有 add/offer/put 三种加入新元素的方法,有 remove/poll/take

加入新元素:
add:当队满时抛出异常
offer:当队有空时加入新元素返回 true,队满后加入新元素返回 false
put:当队满时阻塞当前线程直到队有空

返回并移除队头元素:
remove: 当队空时抛出异常
poll:当队未空返回 true,队空返回 false
take:队空时阻塞当前线程直到队有元素

定义 Comparator:
通过定义 Comparator 来规定 PriorityQueue 中元素的比较方式,新的 Comparator 通过构造函数的参数传入,如:

        PriorityQueue<Process> pq = new PriorityQueue<Process>(new Comparator()
        {
            @Override
            public int compare(Process p1, Process p2)
            {
                if(p1.exeTime == p2.exeTime)
                    return p1.arrTime - p2.arrTime;
                else
                    return p1.exeTime - p2.exeTime;
            }
        });

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容