我已经编写了以下游戏服务器并希望提供组功能。组将允许将屏幕上“附近”的玩家组合在一起。在快速动作游戏中,由于玩家会不断地进出他们的区域,所以这个群体会快速变化。
由于每个玩家都需要收听组中其他玩家的事件,因此玩家将订阅该组。这让我想到了我的问题。在这种情况下可以使用什么适当的数据结构或 java 集合类来保存组上不断变化的事件侦听器集?在我看来,一个组的听众数量很少会超过 20,并且在大多数情况下应该少于这个数量。它是一个多线程环境。
我打算使用的是CopyOnWriteArrayList
. 但是由于会有合理数量的更新(由于订阅的变化),这个类是否合适?还有什么其他类可以使用?如果您有任何使用数组等的自定义实现,请分享。