PriorityQueue
の項目の優先度を増減したいとします。たとえば、長い画像リストをダウンロードしていて、30番目の画像を優先して優先したい場合があります。PriorityQueueは、すでにキュー内にある要素の並べ替えを許可しますか?
私が理解しているように、poll()
は常に(コンパレータによって決定される)最も低い値のキューオブジェクトを返します。すでにキューに入っているアイテムの値を下げることができれば(例えば、この値がオブジェクトのint
によって決定され、他の関数のint
の値を減らした場合)、最初にpoll()
によって返されるか、ソートされますpoll()
は、挿入時にこれを行うことができます(たとえば、新しいキュー要素がリストの下に「自然な」深さに達するまでバブリングすることによって)?
これがPriorityBlockingQueue
で行われた場合、同時性の問題が発生する可能性がありますか?
興味深い。私が望んでいたほど良いものではありませんでしたが、私が恐れていたよりも優れていました! –