通过下面例子我们可以看出,两个不同的字符串,经过排序后,生成了相同顺序的字符数组。
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)