A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

将字符串数组String[ ] arr={1.2, 2.3,3.3,1.12}
全部存入HashMap集合中

这样的需求怎么做呢?
怎么重写比较器?有用吗?
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

7 个回复

倒序浏览
string里面重写了hashcode()和equals(),你没有办法动string里面的代码。你说的比较器,大部分只用在排序中,比如treeset 和treemap。map的设计原理就是用健来找值,你同名键没有意义,如果想要用值来找键,那就在定义hashmap的时候把键和值的位子交换一下不就行了
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
hashmap好像没办法存相同的系统类键
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
836563696 发表于 2016-10-14 08:21
hashmap好像没办法存相同的系统类键

重写去重方法也不行吗
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
836563696 发表于 2016-10-14 08:21
hashmap好像没办法存相同的系统类键

重写去重方法也不行吗,怎么会回复错啊。。。。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
感觉如果你重写了hashcode方法与toString方法,可以实现两个内容相同的键,但是你必须获取他们的地址值才能保证在取值时不会发生找不到对应的应该是哪一个键。那样子你还需重写get方法,太可怕了。
回复 使用道具 举报
HashMap中 存储基本数据类型和String类,不能存储重复的,因为你不能更改它们的hashCode()和equals()方法,想要存取相同的键,就用TreeMap
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马