gpt4 book ai didi

android - 字符串 hashCode() : always the same result?

转载 作者:太空狗 更新时间:2023-10-29 16:37:23 25 4
gpt4 key购买 nike

This question's answer很好地解释了Java的情况。我想知道Android的情况如何。具体来说:

问题 1:对于给定的字符串,哈希码是否始终相同?(更具体地说,我需要给定字符串的哈希码每次在用户手机上都相同应用程序已打开)。

我用谷歌搜索了 android 的 String 的来源并找到了 this ,但我在玩火,因为我不知道关于 Android 源的第一件事,如果/何时被制造商等修改。

问题 2:如果对 1 的回答是否定的,那么在我自己的 hashCode() 函数中使用上面引用的源代码中的 hashCode() 代码是否明智?

最佳答案

  • 相同的String应该有相同的hashCode()(基于hashCode定义)

如果你看一下 Android 的 String 类的 hashCode()。您会看到 hashCode 是基于 char 数组(相同)、char 计数(相同)和偏移量字段(这个值似乎总是零 (0) - 在 String 构造函数中设置 - 我不知道为什么谷歌添加这个偏移量字段。Oracle String.hashCode()是根据char数组计算的,只计算char个数。

  • 您可以构建自己的 hashCode() 函数,如 Oracle String hashCode():此实现基于字符数组和字符计数,因此相同的字符串始终具有相同的 hashCode()。

关于android - 字符串 hashCode() : always the same result?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25314471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com