在一个用 Scala 编写的 Android 游戏中,我有很多我想要合并的对象。首先,我尝试在同一个池中同时拥有活动(可见)和非活动实例;这很慢,因为过滤会导致 GC 并且很慢。
所以我转而使用两种数据结构,所以当我需要获得一个免费实例时,我只需从被动池中取出第一个并将其添加到活动池中。我还快速随机访问活动池(当我需要隐藏实例时)。我为此使用了两个 ArrayBuffers。
所以我的问题是:哪种数据结构最适合这种情况?以及应该如何使用那个(或那些)特定的数据结构来添加和删除以尽可能避免 GC 并在 Android 上高效(内存和 cpu 限制)?