2011-08-28 62 views
0

我有一個PriorityQueue具有優先級的元素。現在我想以不同的優先級再次添加相同的元素,並只保留具有更高優先級的元素。我想要檢查新元素與已有元素,然後決定是保留舊元素還是替換,但我找不到一種方法將我的新元素與PriorityQueue中的任意元素進行比較。如何比較Java PriorityQueue中的任意元素?

回答

2

a PriorityQueue並不意味着訪問它中的任意元素,它旨在允許單獨快速訪問頭部。如果你需要經常做這個操作,可能java.util.TreeSet將是一個更好的數據結構。

但是,您可以通過迭代PriorityQueue [使用Iterator]訪問任何元素,並在找到匹配項時重新打開。在PriorityQueue的任何情況下,您都無法獲得性能更好的O(n),因爲它的設計目的不是這樣。