publicclassHashCodeExample{publicstaticvoidmain(String[]args){// 步骤1: 创建字符串StringmyString="Hello World";// 创建一个字符串对象// 步骤2: 获取哈希码inthashCodeValue=myString.hashCode();// 计算该字符串的哈希码// 步骤3: 打印哈希码
String中的equals方法是被重写过的,因为object的equals方法是比较的对象的内存地址,而String的equals方法比较的是对象的值。 当创建String类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。如果没有就在常量池中重新创建一个String对象。 hashCode 与 equals ...
}privatestaticvoidbuildData(Map<String, StrValObject> mapData,intprime){for(Map.Entry<String, StrValObject> entry : mapData.entrySet()) {Stringkey=entry.getKey();StrValObjectvalue=entry.getValue();inthash=calcHashCode(key, prime);InnerStrValObjinnerStrValObj=newInnerStrValObj(prime, hash); val...
1publicbooleanequals(Object anObject) {2if(this==anObject) {3returntrue;4}5if(anObjectinstanceofString) {6String anotherString =(String)anObject;7intn =value.length;8if(n ==anotherString.value.length) {9charv1[] =value;10charv2[] =anotherString.value;11inti = 0;12while(n-- != 0...
为什么两个String类型的数据,它们的hashcode()相同,但是==的结果为false,程序员大本营,技术文章内容聚合第一站。
String:|--CompareTopublicintcompareTo(String anotherString) {intlen1 =value.length;intlen2 =anotherString.value.length;intlim = Math.min(len1, len2);//取较小长度的字符串作为比较长度charv1[] =value;charv2[] =anotherString.value;intk = 0;while(k <lim) {charc1 =v1[k];charc2 =v2...