不明な量のスレッドがサーバー上のコレクションに要素を追加するシナリオがあります。このコレクションのデータは並べ替える必要はなく、反復もされません。このコレクションでは、次の 2 つの単純な操作のみが機能します。
- 要素の追加 (場合によっては古い要素の削除)
- コレクションからすべての要素を読み取る (1 つずつではなく、コレクション全体をシリアル化してクライアントに送信するため。もちろん、要素を別のコレクションに移動して、後でシリアル化することもできます。)
このユースケースに最適なコレクションはどれですか? ConcurrentHashMap を選択しますが、この選択が適切かどうかはわかりません。
編集: 1 つの重要な要件を忘れていました: 特定の種類の要素が既にこのコレクションにあり、同じ種類の別の要素が追加された場合、新しい要素が追加される前に古い要素が削除されます。この要件のために、ハッシュ値を使用して検索を回避したいと考えました。格納されるオブジェクトは単純です。オブジェクトには、一意のユーザー名といくつかの文字列と int が含まれています。オブジェクトのユーザー名をキーとして使用する必要があります。