我正在开发一个游戏,并且我得到了Main类,其中包含许多对象引用数组。
在主类中,我遍历每个数组并更新对象。问题是我必须为每种类型的对象保存一个数组。每个类型都有一个数组很舒服,但是当我有几十个类型时,它会使代码变得丑陋。
我考虑过要使用String | Array的HashMap,并且每个条目都将具有对象类型名称(String)和数组本身。每个对象都扩展了一个我创建的抽象类,称为GameObject。我的问题是使用hashmap效率高吗?(意味着在每个循环中,Main类都会从地图中获取一个数组并贯穿其对象。)有效是指HashMap的“ get”方法是否会减慢速度。
也许有更好的解决方案来容纳许多不同类型的对象?
我正在使用LibGDX将Java游戏开发为Android。谢谢!
HashMap的get方法非常有效,因为它使用哈希表。如果映射键是String对象,则字符串的值通过哈希函数运行。结果用于索引存储引用的密钥的“存储桶”。
通过为对象提供良好的哈希功能,对象的每个唯一状态都将具有其自己的存储桶。因此,在HashMap上调用get(key)将立即为您提供对该键值的引用。
String的hashcode方法已经实现,并为String的每个状态产生了唯一的哈希。
这意味着什么:
如果您具有唯一的String值,则可以使用HashMap的get方法立即访问该值。
对于TreeMap或TreeSet而言,情况并非如此,这意味着它们具有有序的地图或集合。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句