【发布时间】:2012-01-02 13:50:03
【问题描述】:
假设我有一些查找表q(w, x, y, z),其中各种键组合映射到不同的值;即q(0, 0, 0, 0) = a、q(0, 0, 0, 1) = b、q(15, 16, 23, "b") = c。
就效率而言,在 Ruby 中实现这种结构的最佳方式是什么?密钥将动态生成,通常是字符串。我可以想到三种不同的哈希键控方法:
- 使用字符串作为键:
q["a, b, c, d"] = 0 - 使用单个数组作为键:
q[["a", "b", "c", "d"]] = 0 - 使用哈希哈希:
q["a"]["b"]["c"]["d"] = 0
我目前正在使用方法 2,它比我想要的要慢一些。这些组合键是动态生成的——如果我使用一个带单个字符串的哈希,字符串连接会更快吗?我应该首先从哈希开始吗?这种方法会占用更多内存空间吗?
【问题讨论】:
标签: ruby performance data-structures hash