【问题标题】:Create mapping of different unique string values into unique integer values with specified range创建将不同的唯一字符串值映射到具有指定范围的唯一整数值
【发布时间】:2019-11-24 01:56:40
【问题描述】:

我面临一个问题,我想将字符串列表从一个应用程序映射到唯一整数但具有指定范围(如 0 到 99999)。

例子:

"Input_str_1" should (for example) mapped to 5423 each time
"Input_str_2" should (for example) mapped to 4829 each time

这里重要的考虑是对于相同的输入字符串,我每次都应该从给定范围内获得相同的数字。我的输入字符串不会超过 1,00,000。所以我指定了这个范围。

我无法获得有关如何解决此问题的起始指针。如果你们中的任何人可以在这个方向上帮助我,将不胜感激。

我的两个应用程序都在 java 中。

【问题讨论】:

  • 1) 映射是否需要持久化? 2) 如果不是,一个简单的 Map 可以保存映射,并使用 'theMap.size()' 作为下一个可用数字。 3) Stackoverflow 不是代码编写服务,您需要向我们展示您对解决方案的尝试。
  • 映射不需要持久化。实际上,我并不是在寻找可立即使用的代码,这就是为什么我要求提供有关“如何解决这个问题?”的指针
  • 要将字符串映射到数字上,请使用哈希函数。
  • 试试theString.hashCode() % 100000
  • 好的散列函数可以解决问题

标签: java string random unique


【解决方案1】:

您的目标是生成一个唯一的数字,还是只是一个看似随机的数字?如果是后者,任何散列函数就足够了。否则,如果有 N 个可能的输入,而其他所有输入都无效,则查看完美哈希函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多