【Java】String的hashCode

【Java】String的hashCode,第1张

通过下面例子我们可以看出,两个不同的字符串,经过排序后,生成了相同顺序的字符数组。

        String str1 = "hello";
        String str2 = "helol";
        char[] chars = str1.toCharArray();
        Arrays.sort(chars);
        char[] chars2 = str2.toCharArray();
        Arrays.sort(chars2);

如果直接通过 char[] 的toString方法,则他们的hashcode是不一样的

        String ss1 = chars.toString();
        String ss2 = chars2.toString();
        System.out.printf("ss1: %s, hashcode : %d \n",ss1,ss1.hashCode());
        System.out.printf("ss2: %s, hashcode : %d \n",ss2,ss2.hashCode());

如果通过new String() 创建出来的String hashcode()是一样的


        String s = new String(chars);
        String s1 = new String(chars2);
        System.out.println(s.hashCode());
        System.out.println(s1.hashCode());

打印结果如下

ss1: [C@1b6d3586, hashcode : 1905985623 
ss2: [C@4554617c, hashcode : 1483616735 
96481132
96481132

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/720185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存