【发布时间】:2011-01-18 03:41:40
【问题描述】:
我有一个奇怪的问题,我正在集思广益可能的解决方案。问题是这样的:我有许多输入(最多几千个不同的输入),它们在两三个数组中基本上不同(数组的大小通常不同,从一个大小到几千个元素长)。处理数组的函数需要一些时间来初始化数据,所以我想将函数/仿函数与数据一起缓存并将它们存储在地图中。
现在,我该如何将原始数组转换为可用的哈希表类型?我最初想将数组读入字符串并使用字符串作为键。这是个好主意吗?你有更好的建议吗?
【问题讨论】:
-
您是否需要查找特定键?如果您只想在下一个数据集之后处理一个数据集,我不确定使用哈希表会给您带来什么,这听起来像。
-
@Joe 是的,我确实需要查找密钥。使用相同的函数处理相同的数据 10 次或更多次。
-
但是你怎么知道你需要再次处理哪一组呢?从您的描述中我不明白的是,您如何在逻辑中知道您需要再次检索哪个数据集?
-
哪个增长更快,元素的数量或键的大小?如果你散列整个密钥,那么计算一个密钥的散列是 O(key size),这可能很重要。如果您不对整个密钥进行哈希处理,那么仅在末尾不同的密钥就会发生冲突。