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;
            }
        });

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容