0
我有一個PriorityQueue
具有優先級的元素。現在我想以不同的優先級再次添加相同的元素,並只保留具有更高優先級的元素。我想要檢查新元素與已有元素,然後決定是保留舊元素還是替換,但我找不到一種方法將我的新元素與PriorityQueue
中的任意元素進行比較。如何比較Java PriorityQueue中的任意元素?
我有一個PriorityQueue
具有優先級的元素。現在我想以不同的優先級再次添加相同的元素,並只保留具有更高優先級的元素。我想要檢查新元素與已有元素,然後決定是保留舊元素還是替換,但我找不到一種方法將我的新元素與PriorityQueue
中的任意元素進行比較。如何比較Java PriorityQueue中的任意元素?
a PriorityQueue
並不意味着訪問它中的任意元素,它旨在允許單獨快速訪問頭部。如果你需要經常做這個操作,可能java.util.TreeSet
將是一個更好的數據結構。
但是,您可以通過迭代PriorityQueue
[使用Iterator
]訪問任何元素,並在找到匹配項時重新打開。在PriorityQueue
的任何情況下,您都無法獲得性能更好的O(n)
,因爲它的設計目的不是這樣。