2017-06-26 17 views
1

JavaのPriorityQueueコレクションが自動的にheapifyしているかどうか、コンパレータで使用されているキーのいずれかが突然変異している場合、明示的にheapifyを呼び出してbinary treeを注文する必要があるかどうかを知りたいだけですか? 私は、コレクション内のオブジェクトが参照されるとすぐにヘッドに移動する必要がある設定のようなキャッシュの中でデータ構造を使用するようにデータ構造を試しています。PriorityQueueは、コレクション内のオブジェクトが変更されてキー(コンパレータで使用される)が変更された場合に自動的にヒープ化されますか?

+0

ハッシュマップとリンクリストを組み合わせて非常に効果的なキャッシュを作成できます。例については、https://stackoverflow.com/questions/22002814/is-this-algorithm-implementation-lru-or-mruを参照してください。それはC#のですが、あなたはそれをJavaに簡単に変換できるはずです。 –

答えて

1

キュー自体を変異させる操作のキューに自動的heapifies、すなわちofferpollremoveadd

要素を変更する場合は、削除してから再度挿入する必要があります。。優先度キューは、要素が更新されたことを知る方法がありません。

+0

助けてくれてありがとう:-) – akhil

+0

喜んでそれは:) –

関連する問題