java map 允许重复_java,_HashMap的key值不允许重复问题,java - phpStudy

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如何在父组件中自己添加参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值