關于優先隊列:
有 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;
}
});