【问题标题】:Nested HashTables?嵌套哈希表?
【发布时间】:2011-05-06 20:30:52
【问题描述】:

我正在使用 Java 开发游戏引擎,并试图使屏幕绘图的决策过程花费最少的时间。所以我一直在使用很多嵌套在 HashTables 中的 HashTables。我知道这可能是不好的编码习惯,但我真的很想知道是否有任何嵌套深度会真正破坏我的程序运行?

【问题讨论】:

  • 糟糕的设计方面取决于您如何使用嵌套表。如果是从一组值中查找元素,那肯定闻起来像是糟糕的设计。如果它是不相关的哈希表的哈希表,当然:为什么不。
  • 如果您准确描述了如何使用这些嵌套哈希表,这将有助于您获得更好的答案。不同的数据结构很可能对你更好,但现在任何人都只能说“它没有伤害”。

标签: java hashtable


【解决方案1】:

通常不会,如果您认为哈希表的一般用途是可扩展性之一:即无论元素数量如何,都可以使操作总体上具有“恒定”时间。每次操作必须计算多个哈希码原则上不会破坏这个可扩展性保证。

根据您的实施,显然可能还有其他考虑因素,例如涉及的空间/占位符对象的数量。

如果需要考虑后一种类型,则考虑使用带有组合散列函数的大型散列表。

【讨论】:

    【解决方案2】:

    不,深度无关紧要(至少在内存耗尽之前)

    只需使用HashMap 而不是Hashtable

    【讨论】:

      【解决方案3】:

      一般不好?不,但我还没有看到一个游戏中深度嵌套的哈希表是有意义的。从您的描述中可以看出,您应该好好看看BSP trees

      无论如何,使用一些高级框架而不是重新发明轮子(糟糕)可能更有意义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-09
        • 1970-01-01
        • 1970-01-01
        • 2015-04-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多