能否定义两个字符串s1和s2对象,使得以下结论同时成立:
1. s1.equals(s2) 得到的结果是false
2. s1.hashCode() == s2.hashCode() 得到的结果是true
1. s1.equals(s2) 得到的结果是false
2. s1.hashCode() == s2.hashCode() 得到的结果是true
解决方案 »
- 一个简易计算器的问题
- 问一下关于权限的问题
- 图片浏览器,高手请进
- 关于java事务机制的疑问,高手请进来指导(本人以为确实值得讨论),谢谢。
- 列表框选择问题 _ 为什么选一下,反应两次,如何才能做到只反应一次?
- Java Swing JFrame 背景图片无法显示
- 关于JAVA三层结构构建问题。
- 请问怎样在调用存储过程时使用setArray方法?
- 很简单的显示窗口的程序出错 Exception in thread "main" java.lang.NoClassDefFoundError: FirstTest
- 重返Java路线
- Heritrix配置后,不能抓取,请求帮助
- ArrayList和StringBuilder在速度上有区别吗?
或者说肯定存在s1、s2满足条件 但是想找出来具体的s1、s2应该是不可能的
2、如果两个对象的hashCode相同,它们并不一定相同
上面说的对象相同指的是用eqauls方法比较。
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个地址相等
System.out.println("{~".hashCode());