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

我用字符串文字创建了 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:::366712642


hashValue str::366712642


hashValue str2:::366712642


缥缈止盈
浏览 167回答 2
2回答

ABOUTYOU

您正在打印String类的哈希码,而不是创建的String对象。代替:str.getClass().hashCode()你应该有:str.hashCode()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java