0
有沒有辦法刪除一個值小於指定值的scala優先級隊列中的所有項?刪除值小於x的PriorityQueue中的所有項目
例如。
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