我使用的是libGDX,还有一个Pools类ObjectMap,其中包含Pool(s)。
为效果 / projectiles 创建单独的ObjectMap
或使用Pools
类(简单方法)是否更好。
赢得了大ObjectMap
减速get(Class)
方法,还是表现失败?
Java Doc:
/ **无序地图。这个实现是一个使用3的布谷鸟哈希映射 哈希,随机行走,以及有问题*键的小藏匿处。 不允许空密钥。允许空值。没有分配 除了增加表格大小外完成。
* * *这张地图 执行非常快的get,containsKey和remove(通常为O(1),最差 case O(log(n)))。 Put可能会慢一点,*取决于哈希 碰撞。负载系数大于0.91大大增加了 地图将不得不重新调整到下一个更高的POT大小。 * @author Nathan Sweet * /
答案 0 :(得分:1)
最好坚持使用Pools
课程。我认为你误解了这门课的运作方式。 Pools
类存储ObjectMap
,它按类类型存储对象池。
例如,如果你执行Pools.obtain(Bullet.class)
,该类将找到一个Bullet
池,并从那里创建一个对象。您可能拥有的任何其他课程都会发生同样的情况。这意味着您在一个对象图中只有几个池。
除非您拥有数千或数百万种不同数据类型的数据,否则使用此类非常合适。