次の機能を備えた java.util.Set の実装を探しています。
- 同期ロックを使用しないで同時実行する必要があります。したがって、 Collections.synchronizedSet ()を使用したくないことは明らかです。
- 広告掲載順を維持する必要があります。したがって、ConcurrentSkipListSet は、compareTo() を equals() として使用し、Comparable または Comparator の実装を提供する必要があるため、好ましくありません。LinkedHashMap にもかかわらず、挿入順序を保持しないConcurrentLinkedHashMapもあります。
- 無制限にする必要があります。
- 私の操作はキューの最初の要素に対してのみ行われるため、FIFO リンク リストをお勧めします。
私が見つけた限り、唯一の適切な実装はCopyOnWriteArraySetですが、ドキュメントには次のように記載されています。
ミュータティブ操作 (追加、設定、削除など) は、通常、基になる配列全体をコピーする必要があるため、コストがかかります。
私の場合、キューの最後に多くの挿入(セット)があり、キューの先頭から多くの削除(および読み取り)があります。それで、何かお勧めはありますか?