1. s1.equals(s2) 得到的结果是false
2. s1.hashCode() == s2.hashCode() 得到的结果是true
9 个解决方案
#1
不能否认存在这种情况的可能性
或者说肯定存在s1、s2满足条件 但是想找出来具体的s1、s2应该是不可能的
或者说肯定存在s1、s2满足条件 但是想找出来具体的s1、s2应该是不可能的
#2
不能否认存在这种情况的可能性
#3
1、如果两个对象相同,那么它们的hashCode值一定要相同;
2、如果两个对象的hashCode相同,它们并不一定相同
上面说的对象相同指的是用eqauls方法比较。
2、如果两个对象的hashCode相同,它们并不一定相同
上面说的对象相同指的是用eqauls方法比较。
#4
String重写了equals和hashCode,因此,不可能
#5
public class and {
public static void main(String[] args){
String str1="1";
String str2;
str2="2";
System.out.println(str1.equals(str2));
str2=str1;
System.out.println(str1.hashCode()==str2.hashCode());
}
}
只能是上面的那样,如果是2个打印输出一起执行则不可能,因为你不能要求值相等而且地址还相等,那不就成了一个字符串了吗,所以你只能先通过赋值让值相等,在通过=号让2个地址相等
#6
楼上的方法太.....
不可能的,本来是可以通过重写他的hashCode 和 equalse 方法来实现的。但是String 是final 类。这两个方法都不能被重写了。
#7
可以的。建议保持一致
#8
这样的字符串太多了。举个例子
System.out.println("|_".hashCode());
System.out.println("{~".hashCode());
System.out.println("|_".hashCode());
System.out.println("{~".hashCode());
#9
难得有个明白人,呵呵!我的答案更加简单 str1="", str2="\u0000"
#1
不能否认存在这种情况的可能性
或者说肯定存在s1、s2满足条件 但是想找出来具体的s1、s2应该是不可能的
或者说肯定存在s1、s2满足条件 但是想找出来具体的s1、s2应该是不可能的
#2
不能否认存在这种情况的可能性
#3
1、如果两个对象相同,那么它们的hashCode值一定要相同;
2、如果两个对象的hashCode相同,它们并不一定相同
上面说的对象相同指的是用eqauls方法比较。
2、如果两个对象的hashCode相同,它们并不一定相同
上面说的对象相同指的是用eqauls方法比较。
#4
String重写了equals和hashCode,因此,不可能
#5
public class and {
public static void main(String[] args){
String str1="1";
String str2;
str2="2";
System.out.println(str1.equals(str2));
str2=str1;
System.out.println(str1.hashCode()==str2.hashCode());
}
}
只能是上面的那样,如果是2个打印输出一起执行则不可能,因为你不能要求值相等而且地址还相等,那不就成了一个字符串了吗,所以你只能先通过赋值让值相等,在通过=号让2个地址相等
#6
楼上的方法太.....
不可能的,本来是可以通过重写他的hashCode 和 equalse 方法来实现的。但是String 是final 类。这两个方法都不能被重写了。
#7
可以的。建议保持一致
#8
这样的字符串太多了。举个例子
System.out.println("|_".hashCode());
System.out.println("{~".hashCode());
System.out.println("|_".hashCode());
System.out.println("{~".hashCode());
#9
难得有个明白人,呵呵!我的答案更加简单 str1="", str2="\u0000"