为了账号安全,请及时绑定邮箱和手机立即绑定

对于使用文字或新创建的所有字符串,哈希值都相同

对于使用文字或新创建的所有字符串,哈希值都相同

缥缈止盈 2021-05-31 17:23:34
我用字符串文字创建了 3 个字符串 2,用 new 创建了一个字符串。但是当我为他们打印哈希码时,它给出了相同的哈希码。我很困惑它如何返回相同的哈希码。请在下面找到示例。public class StringTest{    public static void main(String[] args)    {        String str = "abc";        String str1 = "hfdjkfhs";        System.out.println("hashValue str:::" + str1.getClass().hashCode());        System.out.println("hashValue str:::" + str.getClass().hashCode());        String str2 = new String("def");        System.out.println("hashValue:::" + str2.getClass().hashCode());    }}输出 :-hashValue str1:::366712642hashValue str::366712642hashValue str2:::366712642
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

您正在打印String类的哈希码,而不是创建的String对象。

代替:

str.getClass().hashCode()

你应该有:

str.hashCode()


查看完整回答
反对 回复 2021-06-02
  • 2 回答
  • 0 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信