黑马程序员技术交流社区

标题: 怎么在HashMap集合中存储同名的键? [打印本页]

作者: System.style    时间: 2016-10-14 07:23
标题: 怎么在HashMap集合中存储同名的键?
将字符串数组String[ ] arr={1.2, 2.3,3.3,1.12}
全部存入HashMap集合中

这样的需求怎么做呢?
怎么重写比较器?有用吗?

作者: KalShen    时间: 2016-10-14 07:53
string里面重写了hashcode()和equals(),你没有办法动string里面的代码。你说的比较器,大部分只用在排序中,比如treeset 和treemap。map的设计原理就是用健来找值,你同名键没有意义,如果想要用值来找键,那就在定义hashmap的时候把键和值的位子交换一下不就行了

作者: Daveweil    时间: 2016-10-14 07:54
不重写hashcode方法

作者: 836563696    时间: 2016-10-14 08:21
hashmap好像没办法存相同的系统类键

作者: System.style    时间: 2016-10-14 08:31
836563696 发表于 2016-10-14 08:21
hashmap好像没办法存相同的系统类键

重写去重方法也不行吗

作者: System.style    时间: 2016-10-14 08:33
836563696 发表于 2016-10-14 08:21
hashmap好像没办法存相同的系统类键

重写去重方法也不行吗,怎么会回复错啊。。。。

作者: 小东先森    时间: 2016-10-14 10:18
感觉如果你重写了hashcode方法与toString方法,可以实现两个内容相同的键,但是你必须获取他们的地址值才能保证在取值时不会发生找不到对应的应该是哪一个键。那样子你还需重写get方法,太可怕了。
作者: gao5867565    时间: 2016-10-14 10:30
HashMap中 存储基本数据类型和String类,不能存储重复的,因为你不能更改它们的hashCode()和equals()方法,想要存取相同的键,就用TreeMap




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2