java - 删除优先级队列的尾元素

标签 java priority-queue

如何删除优先队列的尾元素?我正在尝试使用优先级队列实现束搜索,一旦优先级队列已满,我想删除最后一个元素(优先级最低的元素)。

谢谢!

最佳答案

没有简单的方法。将元素从原始元素复制到新元素(最后一个元素除外)。

PriorityQueue removelast(PriorityQueue pq)
{

    PriorityQueue pqnew = new PriorityQueue();

    while(pq.size() > 1)
    {
        pqnew.add(pq.poll());
    }

    pq.clear();
    return pqnew;
}

称为

pq = removelast(pq);

关于java - 删除优先级队列的尾元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117246/

相关文章:

java - Java 中的条件映射框架

java - Android 应用程序因添加布局而崩溃

java - PageObject 实例调用执行某些操作

c++ - 修改对内部数据的引用时更新 STL 优先级队列

java - 在 Java 中导入新框架?

java - OpenCSV java.lang.NoSuchMethodException : Unknown property 'X' on class Y

java - 优先队列实现堆

java - 如何防止 ActiveMQ 优先级队列上的低优先级消息被饿死?

java - 优先队列 Java 添加方法抛出语法错误和错位构造错误

java - poll() 返回类型与 PriorityBlockingQueue.poll() 冲突