HashMap的key值不允许重复问题
package com.wang.testMianShi;
public class Person {
private String name;
private int age;
public Person() {
super();
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
//测试hashCode
// @Override
// public boolean equals(Object obj) {
// // TODO Auto-generated method stub
// return true;
// }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
// @Override
// public String toString() {
// return "Person [name=" + name + ", age=" + age + "]";
// }
}
package com.wang.testMianShi;
import java.util.HashMap;
import java.util.Map;
public class testHashMap {
public static void main(String[] args) {
//
Person p1 = new Person("tom", 18);
Person p2 = new Person("jack", 19);
Map hMap5 = new HashMap<>();
hMap5.put(p1, "1111");
hMap5.put(p2, "2222");
System.out.println(hMap5 +"--"+ hMap5.size()); //2
p1.setAge(5);
System.out.println(hMap5);
hMap5.put(p1, "333");
System.out.println(hMap5);
System.out.println(hMap5.get(p1));
}
}
奇葩的是竟然允许key重复,而且引用地址相同,都是com.wang.testMianShi.Person@1c5ae
{com.wang.testMianShi.Person@31aded=2222, com.wang.testMianShi.Person@1c741=1111}--2
{com.wang.testMianShi.Person@31aded=2222, com.wang.testMianShi.Person@1c5ae=1111}
{com.wang.testMianShi.Person@1c5ae=333, com.wang.testMianShi.Person@31aded=2222, com.wang.testMianShi.Person@1c5ae=1111}
相关阅读:
gulp-less 关于@import的文件改变后如何编译
jquery选择器在jquery版本2生效,却在jquery版本3中失效
IE 下显示这个
如何用JavaScript实现如下动画文字
多个大表联合查询SQL拆分问题
angularJs全选复选BUG求助(先单选后全选反选后,再进行单选之前的值未清空)
node项目中用ueditor实现上传附近
this和作用域的问题
ci的分页如何控制只显示5个页码,当页码过多时使用省略号
gulp-userf没法合并jq boostrap吗?
不用JQuery,如何获取动态DOM,
webpack1X cannot read property 'call' of undefined
中文乱码问题
基于css3transform属性实现无缝手动轮播
jQ如何获取访问网页用户的IP存为cookies,用户第二次进入页面的时候,通过cookies判断进入另外一个页面
webpack的小问题
前端er 想爬数据 从什么入门好?
VSCode,GO语言插件,导包时不提示当前工程?
用js和php分别去掉表单首尾的空格和多余的换行怎么做?
vuejs的$emit如何在父组件中自己添加参数。