Есть ли способ удалить все элементы в очереди приоритетов scala со значением, меньшим указанного значения?Удалить все элементы в PriorityQueue со значением меньше x
например.
val queue = scala.collection.mutable.PriorityQueue[Int]()
queue.enqueue(3)
queue.enqueue(5)
queue.enqueue(10)
queue.enqueue(8)
queue.removeAllLessThan(6)
println(queue) // PriorityQueue(10, 8)
Я знаю, что вы могли бы сделать это с помощью фильтра, но кажется, что было бы очень эффективный способ сделать это на кучу.
Причина, по которой я хочу сделать это, заключается в том, чтобы сохранить снимок памяти для алгоритма A *.
Для удаления всех предметов, имеющих меньшее значение, требуется перестройка кучи. Я предполагаю, что использование фильтра также сканирует кучу, чтобы удалить ненужные элементы, а затем перестроить кучу. Поэтому я ожидаю, что фильтр будет достаточно эффективным. – user3386109