0
지정된 값보다 작은 값으로 스칼라 우선 순위 대기열의 모든 항목을 제거 할 수 있습니까?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