Javaで削除効率の良い優先度付きキューとして使えるクラスはありますか?
Java SEコアAPIに次の条件を満たすコンテナクラスは用意されているでしょうか。
(1)重複要素を許す
(2)最大値/最小値の取得がO(1)
(3)任意の要素の削除がO(log(n))
STLではmultiset
がこれらの性質を満たしています。一方Javaでこのようなクラスを探してみたところ、近いものとしてPriorityQueue
とTreeSet
が挙がりました。 しかし前者は削除に線形時間かかり、後者は重複要素を許さないため条件に合いませんでした。
TreeSet
とタプルを使えば同じことを実現できると思いますが、先に挙げた性質を満たすクラスがあるかどうかを知りたいです。