libGDX Array类的好处

时间:2015-02-10 09:55:14

标签: libgdx

libGDX Array类的javadoc说:可调整大小,有序或无序的对象数组。如果无序,则此类在删除元素时避免使用内存复制(最后一个元素移动到已删除元素的位置)。
元素删除改进是否是本课程的唯一优势还是有其他优势? 换句话说 - 如果我不打算从我的列表中删除元素,我可以使用ArrayList吗?

1 个答案:

答案 0 :(得分:13)

Array实际上不是唯一的"替代品#34;标准Java集合类。还有更多像ObjectSetIntIntMap的内容。你可以找到所有这些here

它们大部分都经过优化,以尽可能避免垃圾回收。他们以多种方式做到这一点。

一种方法是您已经指出的方法,尽可能避免使用内存副本,例如在Array删除元素的情况下。

此外,他们重新使用迭代器。标准的java集合不会这样做,这就是为什么每次迭代集合时都会创建一个新的Iterator

另一种方法是使用基元,这避免了由于自动装箱而创建的对象。例如IntIntMapint个密钥和int个值。标准java HashMap<Integer, Integer>无法处理将导致许多自动装箱int - &gt;的原语。 Integer

你应该尽可能地坚持使用libgdx类,特别是在移动设备上。在桌面上,垃圾收集器通常非常快,以至于你不会注意到它,但即使在那里它也会导致丑陋的FPS滞后。

相关问题