java 优先级队列中的成员函数返回但不删除指定值?
Member function in java priority queue returning but not removing the specified value?
我想知道在Java优先级队列中,是否有一个成员函数returns指定的值(最小值或最大值取决于优先级队列的结构)而不删除它?
remove()
删除此元素。
下面的例子说明了我的问题。
public static void main(String[] args){
PriorityQueue<Integer> que = new PriorityQueue<Integer>();
que.offer(3);
que.offer(1);
que.offer(2);
System.out.println(que.remove());
System.out.println(que.remove());
System.out.println(que.remove());
//Instead of removing them directly, I would
//like to see whether the min numbers are greater than, say 2.
//If so, remove them in increment order.
}
使用 peek
方法,您可以在不删除队列头部的情况下检查元素的值。
http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html#peek()
偷看()
Retrieves, but does not remove, the head of this queue, or returns
null if this queue is empty.
更详细的解释请参考这里:Whosebug
我想知道在Java优先级队列中,是否有一个成员函数returns指定的值(最小值或最大值取决于优先级队列的结构)而不删除它?
remove()
删除此元素。
下面的例子说明了我的问题。
public static void main(String[] args){
PriorityQueue<Integer> que = new PriorityQueue<Integer>();
que.offer(3);
que.offer(1);
que.offer(2);
System.out.println(que.remove());
System.out.println(que.remove());
System.out.println(que.remove());
//Instead of removing them directly, I would
//like to see whether the min numbers are greater than, say 2.
//If so, remove them in increment order.
}
使用 peek
方法,您可以在不删除队列头部的情况下检查元素的值。
http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html#peek()
偷看()
Retrieves, but does not remove, the head of this queue, or returns null if this queue is empty.
更详细的解释请参考这里:Whosebug