libGDX Array类的javadoc说:可调整大小,有序或无序的对象数组。如果无序,这个类在删除元素时会避免内存拷贝(最后一个元素被移动到被删除元素的位置)。
元素去除改进是这个类的唯一优势还是其他呢?
换句话说 - 如果我不打算从我的列表中删除元素,我可以用ArrayList吗?
libGDX Array类好处
4
A
回答
11
Array
实际上不是标准Java集合类的唯一“替代”。还有更多像ObjectSet
或IntIntMap
。你可以找到他们全部here。
他们大多进行了优化,尽可能避免垃圾回收。他们在很多方面都这样做。
其中一种方法是您已经指出的方法,例如在删除Array
中的元素时尽量避免使用内存副本。
此外,他们重新使用迭代器。标准java集合不这样做,这就是为什么每次迭代集合时都会创建新的Iterator
。
另一种方法是使用基元,它避免了由于自动装箱造成的对象的创建。例如IntIntMap
具有int
键和int
值。标准的java HashMap<Integer, Integer>
不能处理会导致许多自动装箱的原语,即int
->Integer
。
您应该随时尝试坚持使用libgdx类,特别是在移动设备上。在桌面上,垃圾收集器通常非常快,您不会注意到它,但即使在那里它也会导致难看的FPS滞后。
相关问题
- 1. Libgdx - 反复处理?
- 2. 如何在$ .when完成处理程序时使_each处理'array'和'array of array'
- 3. Int Array []打印不好。
- 4. 使用javascript Array reduce()方法有什么实际好处吗?
- 5. 本地类的好处Java
- 6. 继承Array类
- 7. 无效的类型:'Array'和'dynamic array'
- 8. LibGdx/JAVA addlistener到类
- 9. JQuery处理JSON或Array
- 10. 类Array用[]和IEnumerable
- 11. Array类的对象
- 12. 对于Libgdx中的Array Datatype,哪种循环语法最快?
- 13. libGDX:使用偏好进行高分
- 14. libgdx box2d插值效果不好
- 15. 类型'Array []'不能分配给类型'[Array]'
- 16. 使用Sprite.draw时未绘制的Sprite类(批处理)LibGDX
- 17. 哪个更好,a = []或a = new Array()?
- 18. 写更好:var arr = [];比var arr = new Array();?
- 19. 好处
- 20. libgdx用户数据类
- 21. 使用Python类有什么好处吗?
- 22. C# - “部分”类有什么好处?
- 23. php - 处理平日的好'约会'类?
- 24. 使用Zend_Config类的好处是什么?
- 25. 类型'___'没有会员'array'
- 26. Java Array类的成员
- 27. 转换的Array类模板
- 28. Array的驱动程序类
- 29. PHP类常量Array Cast
- 30. 矩阵类与std :: array
完美答案。谢谢! – 2015-02-10 15:01:07