string.GetHashCode() 唯一性和冲突

2024-03-14

给定两个不同的字符串,情况是否总是这样s.GetHashCode() != s1.GetHashCode()?

是否存在不同整数的数量小于不同字符串的数量?


No. Just as a simple thought experiment: How many strings are there (hint: many more than 232 and thus how many unique hash codes can there be (hint: 232. See the problem? http://en.wikipedia.org/wiki/Pigeonhole_principle)

哈希码只需要是equal每当Equals返回两个对象相等。此外,每当两个哈希码not相等,那么对象本身不可能相等。没有进一步的要求,但他们should分布良好,以便哈希表能够良好运行。所以基本上是:

请注意省略相应的 ⇐ 变体。这不是等价的,只是两个含义。

引用文档 http://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx:

哈希函数必须具有以下属性:

  1. 如果两个对象比较相等,则每个对象的 GetHashCode 方法必须返回相同的值。但是,如果两个对象比较不相等,则两个对象的 GetHashCode 方法不必返回不同的值。

  2. 只要不修改确定对象 Equals 方法返回值的对象状态,对象的 GetHashCode 方法就必须始终返回相同的哈希码。请注意,这仅适用于应用程序的当前执行,并且如果应用程序再次运行,则可以返回不同的哈希码。

  3. 为了获得最佳性能,哈希函数必须为所有输入生成随机分布。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

string.GetHashCode() 唯一性和冲突 的相关文章

  • 何时使用 =default 使析构函数默认?

    尽管对构造函数使用 default 对我来说很清楚 即强制编译器在其他构造函数存在时创建默认构造函数 但我仍然无法理解这两种类型的析构函数之间的区别 那些使用 default 的 那些没有显式定义并由编译器自动生成的 我唯一想到的是 gro
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 找不到 assimp-vc140-mt.dll ASSIMP

    我已经从以下位置下载了 Assimp 项目http assimp sourceforge net main downloads html http assimp sourceforge net main downloads html Ass
  • 类似于 .NET Framework 2.0 的 MEF(托管可扩展性框架)

    我在自己的项目中使用了 MEF 并且非常喜欢它 这很容易 在弄清楚我们的awkwardAPI模型 它刚刚工作了 现在我需要 NET Framework 2 0 类似的东西 有没有可以在 NET Framework 2 0 下工作的类似项目
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 为什么 set_symmetry_difference 无法与比较器一起使用?

    Example program include
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 在 EnvDTE 中调试时捕获 VS 局部变量

    是否可以使用 EnvDTE 进行 vsix Visual Studio 扩展来捕获本地和调试窗口使用的调试数据 或者可以通过其他方法吗 我想创建一个自定义的本地窗口 我们可以修改它以根据需要显示一些较重的内容 而无需为高级用户牺牲原始的本地
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map
  • C++0x中disable_if在哪里?

    Boost 两者都有enable if and disable if 但 C 0x 似乎缺少后者 为什么它被排除在外 C 0x 中是否有元编程工具允许我构建disable if按照enable if 哦 我刚刚注意到std enable i
  • 使用 QtWebEngine 将 C++ 对象暴露给 Qt 中的 Javascript

    使用 QtWebkit 可以通过以下方式将 C 对象公开给 JavascriptQWebFrame addToJavaScriptWindowObject如中所述https stackoverflow com a 20685002 5959
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用

随机推荐

  • 如何在 Swift 中在地图图钉周围添加圆圈?

    我一直在试图解决这个问题 但没有运气 我可以做什么 显示用户当前位置 在我想要的任何地方显示图钉 取决于纬度和经度 我不明白的是 如何围绕该位置创建地理围栏 func setupData 1 check if system can moni
  • Object.Create() 在幕后做什么?

    我正在深入研究 JavaScript 的原型继承 当使用 Object Create 创建对象时 有人可以展示幕后发生了什么吗 Object Create 是否依赖于幕后的 new 和构造函数 When Object create 用于创建
  • 为什么 C++ 隐式转换有效,但显式转换无效?

    以下代码在 C 11 中编译成功 include json hpp using json nlohmann json using namespace std int main json js asd string s1 js lt comp
  • 如何获取 firestore 文档中的字段?

    我正在开发一些与 Firestore 配合使用的云功能 我正在尝试获取特定文档的字段列表 例如 我有一个文档参考even data ref 但我不确定该文档是否包含我正在查看的字段 我想获取字段名称的列表 但我不知道该怎么做 我试图使用Ob
  • 使用目录树和过滤填充 TTreeView

    在 Lazarus 0 9 28 2 项目上我有一个TTreeView 与名字DirTree在我的表格上 frmConvert 但我想用所有目录树填充它 因为C 像这样 C 目录树 http i imagehost org 0185 cdi
  • 卷曲 IP 地址

    我需要发送一个带有用户 IP 地址而不是服务器 IP 地址的卷曲请求 我尝试了这个但没有运气 curl setopt ch CURLOPT INTERFACE ip 有任何想法吗 好吧 所以没有办法安全地欺骗curl请求的ip地址 但我发现
  • 2 的幂公式帮助

    我知道 Java 中的 2 i i i 1 1 可以让我找到一个数字是否是 2 的幂 但是有人可以解释为什么这样做吗 2 i i i 1 1 基本上 如果i是 2 的幂 它将有一个1在其位模式中 如果从中减去 1 则该值的所有低位1有点变成
  • LinkedIn 验证用户身份验证令牌服务器端

    经过一天的研究 我以以下问题结束 我正在使用 ember js 构建一个 Web 应用程序 目前我正在使用 linkedin javascript sdk 实现 LinkedIn 登录 我遇到的问题是 在收到用户信息 令牌 电子邮件 名字等
  • 为什么 SSLSocketFactory 缺少 setEnabledCipherSuites?

    SSLSocketFactory提供getDefaultCipherSuites 默认情况下在套接字上启用的密码 和getSupportedCipherSuites 如果需要 可以启用密码 然而 SSLSocketFactory不提供set
  • 迭代 MultiDict 中的键和所有值

    我有一本字典 params ImmutableMultiDict dataStore tardis symbol 1 symbol 2 我希望能够迭代字典并获取所有值及其键的列表 但是 当我尝试这样做时 它只获取第一个符号键值对并忽略另一个
  • 选择更改事件 - Html.DropDownListFor

    我有两个下拉列表 从第一个值中选择的值加载另一个值 当控制器中有辅助方法时 我该如何做到这一点 using Html BeginForm div table width 100 cellpadding 0 cellspacing 0 tr
  • 添加 BouncyCastle 提供程序会破坏 KeyStore.load()

    我使用以下命令生成了密钥库 keytool genkeypair keystore test ks storetype pkcs12 然后我运行以下测试 base64 代表我创建的密钥库 private static final Strin
  • 实例关闭时的 Spring Cloud Gateway 500

    我有一个使用Spring Cloud Load Balancer Spring Cloud版本 Hoxton SR6 的Spring Cloud Gateway eureka客户端 应用程序 并且我有一个Spring Boot应用程序的实例
  • std::to_string 线程安全吗?

    我正在寻找使用将整数类型转换为字符串std to string http en cppreference com w cpp string basic string to string 但我看到了这一段 std to string依靠std
  • 将中文文档拆分成句子[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我必须将中文文本分成多个句子 我尝试了斯坦福文档预处理器 它对于英语来说效果很好 但对于中文则不然 请
  • Java 说 FileNotFoundException 但文件存在

    我的计算机科学课程有一项作业 其中要求读取包含多个测试分数的文件 并要求我对它们进行求和并求平均值 虽然求和和求平均值很容易 但我在读取文件时遇到问题 老师说使用这个语法 Scanner scores new Scanner new Fil
  • 使用 POST 发送数据到 JSONP 请求

    概括 想要使用 POST 方法将数据发送到另一个域 JSONP Code http jsonp scope baseApiUrl QueryBuilder getData callback JSON CALLBACK success fun
  • 我可以在 MSBuild 文件中执行循环吗?

    目前 我让他遵循以下代码MSBuild项目文件 这真的很简单 定义4变量并为每个变量调用一次我的 MSBuild 任务 求代码
  • 画布默认尺寸

    Chrome 似乎将画布标签的默认宽度设置为 300px 当我希望画布默认为其包含的 div 的大小 其大小未指定 时 这有点麻烦 使用示例here http jsfiddle net ecTCD 1 我希望画布默认为标题的宽度并添加填充
  • string.GetHashCode() 唯一性和冲突

    给定两个不同的字符串 情况是否总是这样s GetHashCode s1 GetHashCode 是否存在不同整数的数量小于不同字符串的数量 No Just as a simple thought experiment How many st