gpt4 book ai didi

libgdx - libGDX Array类的好处

转载 作者:行者123 更新时间:2023-12-04 16:52:30 26 4
gpt4 key购买 nike

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

最佳答案

Array实际上不是标准Java集合类的唯一“替代品”。还有更多类似ObjectSetIntIntMap的内容。您可以全部找到here

他们大多进行了优化,以尽可能避免垃圾回收。他们以多种方式做到这一点。

一种方法是您已经指出的一种方法,即在可能的情况下(例如在Array中删除一个元素的情况下),尝试避免复制内存。

此外,他们重用了迭代器。标准的Java集合不会这样做,这就是为什么每次您对集合进行迭代时都会创建一个新的Iterator的原因。

另一种方法是使用原语,这避免了由于自动装箱而创建对象的情况。 IntIntMap例如具有int键和int值。标准的Java HashMap<Integer, Integer>无法处理原语,这会导致许多自动装箱的int-> Integer

您应该始终尽可能地坚持使用libgdx类,尤其是在移动设备上。在 table 面上,垃圾收集器通常是如此之快,以至于您不会注意到它,但是即使在那儿它也可能导致难看的FPS滞后。

关于libgdx - libGDX Array类的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28428671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com