关于优先队列:
有 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;
}
});