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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王敏NO.09 中级黑马   /  2012-4-16 17:23  /  2181 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

毕老师java基础第16天06视频中,
HashMap<Student,String> hm = new HashMap<Student,String>()
键怎么是Student呢?

6 个回复

倒序浏览
那篇视频我还没看到,Student应该是毕老师提前做的一个类吧。
这里的键值不止我们平常练习的时候所用的String,可以是任意的类型
看下帮助文档就很明确了。

HashMap.png (6.34 KB, 下载次数: 45)

HashMap.png

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
对象也是可以做键的,他之前有一个学生类,然后hashmap 里面把学生对象,和一个string 地址传入,就是这样。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
map键值用什么类型都可以。。
只要这个类型定义出的对象具备比较性,就可以作为key,老师定义的student类对象具备比较性,所以可以
回复 使用道具 举报
Student类以创建。Student为类类型 可以作为健的。。
学生最为键。。一个键对应一个值。。一个学生对应一个地址。保证唯一性。。就像定义学号为健,name为值 也都可以。

黑马程序员_毕向东_Java基础视频教程第16天-06-集合(Map练习).avi 这个看了多次
如基础测试中的6题一样。
我想定义姓名为健。学生其他属性为值。按照score排名。而Student类以创建。初始化了(name,age,score)
要创建Student对象。健想为name。而值又想为score。这样用MAP集合就不行。
所以用Colletion 中的集合好点。
每种集合类各有不同的特点。还是要多学习啊。。。
一位朋友发的API总结。收藏了。可以看看。
http://bbs.itheima.com/thread-11952-1-1.html

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
HashMap<Student,String> hm = new HashMap<Student,String>()
student 是对象类作为键值的。如果想要比较的话,可以让student类中具有比较方法,
或者可以通过比较器来完成比较,让他们来排序的。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
方江 中级黑马 2012-4-17 04:30:30
7#
键值不一定要数据类型才能代表,也就是说,你可以在上面定义一个类,就你这代码的studens就是一个类,然后用它代表了键值。当函数调用该值的时候,调用的便是类里面的方法。
你不要把键值一定要固定在数据类型上面,Map集合中,定义键值的时候,可以是类,可以是对象,可以是数据类型。也可以是方法。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马