嵌套哈希表?

3

我正在使用Java开发游戏引擎,一直在努力使屏幕绘制的决策过程所需的时间最少。因此,我一直在使用大量嵌套的HashTable。我知道这可能不是良好的编码实践,但我真的想知道是否有任何嵌套深度会导致我的程序无法运行?


不良的设计方面取决于您如何使用嵌套表。如果它是用于从一个值体中查找元素,那么它肯定会让人感到糟糕。如果它是无关哈希表的哈希表,那当然可以使用。 - sehe
如果您描述了您如何使用这些嵌套哈希表,那么将有助于您获得更好的答案。很可能有一个不同的数据结构对您更好,但现在任何人都只能说“它没有伤害”。 - Anon
3个回答

2
不,深度并不重要(至少在内存耗尽之前)。
只需使用HashMap而不是Hashtable即可。

2
通常情况下,如果您认为哈希表的一般目的是实现可扩展性,即使元素数量不同,操作也能够保持“恒定”时间,那么通常不需要多次计算哈希码。原则上,每次操作都需要计算多个哈希码并不会破坏这种可扩展性保证。
根据您的实现方式,可能还有其他考虑因素,例如所涉及的空间/占位符对象数量。
如果后一种类型的考虑是一个问题,请考虑使用具有组合哈希函数的大型哈希表。

0

通常情况下不好吗?不是的。但我还没有看到过一个深度嵌套哈希表有意义的游戏。从你所描述的来看,你应该好好研究一下BSP树

使用一些高级框架可能更有意义,而不是重新发明轮子(做得很差)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接