Java 中的 PriorityQueue

关于优先队列:

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

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

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

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

        PriorityQueue pq = new PriorityQueue(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;
            }
        });

你可能感兴趣的:(Java 中的 PriorityQueue)