次のゲームサーバーを作成しましたが、グループ機能を提供したいと思います。グループを使用すると、画面上で「近くにいる」プレーヤーをグループ化できます。高速アクションゲームでは、プレーヤーが常にゾーンに出入りするため、このグループは急速に変化します。
各プレイヤーはグループ内の他のプレイヤーからのイベントを聞く必要があるため、プレイヤーはグループにサブスクライブします。これは私の質問に私をもたらします。このシナリオでグループのイベントリスナーの変化するセットを保持するために使用できる適切なデータ構造またはJavaコレクションクラスは何ですか?私の意見では、グループのリスナーの数が20を超えることはめったになく、ほとんどのシナリオではそれよりも少ないはずです。これはマルチスレッド環境です。
私が使用することを計画しているのはCopyOnWriteArrayList
です。しかし、(サブスクリプションの変更により)適度な量の更新があるので、このクラスは適切ですか?他にどのクラスを使用するとよいでしょうか?配列などを使用したカスタム実装がある場合は、共有してください。