Map<String,String> map1 = new HashMap<String,String>();
map1.put("1","3");
Map<String,String> map2 = new HashMap<String,String>();
map2.put("1","3");
System.out.println( map1.equals(map2) );//为什么这里返回true.
A a1 = new A();
a1.setA("2");
A a2 = new A();
a2.setA("2");
System.out.println( a1.equals(a2) );//为什么这里返回false.
class A
{
private String a; public String getA()
{
return a;
} public void setA(String a)
{
this.a = a;
}
}map1,map2不也是对象吗,为什么会相等, a1,a2也是对象啊,为什么不等。
解决方案 »
- (年龄输入框)用getText()获得字符串怎么转换成整形?
- JScrollpane的问题
- java 文件写入问题 求助
- 是用JAVA直接分析存在文件中的数据的速度快还是用JAVA分析存在SQL2005中的数据的速度快哦?
- VISTA 启动TOMCAT 6.0一闪而过。。
- 菜鸟求助怎么把文件路径中的“\”都替换成“\\”
- 如何隐藏父类中的某个方法或属性
- 同一项目中怎样调用别一文件的类?
- java中socket通讯的问题(连接过程中怎么判断网络中断?)
- 急急急!!!ie中怎么嵌入frame??有无其他办法那???高手快帮忙!
- 关于Spring的xslt视图显示问题
- 含有扩展jar源的JAVA程序如何打包成jar后可以双击运行
从Object继承过来的equals直接判断引用,也就是==,所以两个new A肯定是不equals的Hashmap的equals你可以跟进去看看就知道为什么是true了
中没有重写equals方法,用的是Object中定义的,那个方法是比较对象的引用是否相同的.
它有自己的equals实现而A是判断地址