apache.commons.collections4 にアップグレードしたいのですが、一部のクラスが削除されCircularFifoBuffer
ますUnboundedFifoBuffer
import org.apache.commons.collections.buffer.CircularFifoBuffer;
そのようなクラスの正しい代替品は何ですか?
いくつかの提案が見つかりました :
ヤン・ハデルカ
または、おそらくさらに別のオプションがあります。
バッファーを MinMaxPriorityQueue に置き換えます。これは、それ自体はスレッド セーフではありませんが、guava は幸いにも Queues.synchronizedQueue(Queue q) 呼び出しの形式でスレッド セーフのラッパーを提供します。他の場所ですでにグアバを使用しているため、コモンズの代わりにライブラリを使用しても問題ありません。2つのトーのパフォーマンス比較についてはわかりません。
セドリック・ライヘンバッハ
Queues#synchronizedQueue は確かに BufferUtils#synchronizedBuffer と同等のようです。つまり、含まれているキュー/バッファへのすべてのアクセスを同期します。ただし、CircularFifoBuffer の Guava でのより正確な一致は、おそらく EvictingQueue であるか、または同期ラッパーが任意のキューに対して機能するため、Java 独自の Apache の新しい CircularFifoQueue でさえあります。