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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 思考。。。 中级黑马   /  2015-7-3 14:27  /  311 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class MapDemo
  2. {
  3.                 public static void main(String[] args)
  4.                 {
  5.                                 HashMap<Student,String> hm = new HashMap<Student,String>();
  6.                                 hm.put(new Student("zhangsan1",21),"shanghai");
  7.                                 hm.put(new Student("zhangsan2",22),"guangzhou");
  8.                                 hm.put(new Student("lisi3",23),"nanjing");
  9.                                 hm.put(new Student("lisi4",24),"wuhan");
  10.                                
  11.                                 Set<Student> keySet = hm.keySet();
  12.                                 Iterator<Student> it = keySet.iterator();
  13.                                
  14.                                 while(it.hasNext())
  15.                                 {
  16.                                                 Student stu = it.next();
  17.                                         //        String stu1 = stu.toString();
  18.                                                 //String name = stu.getName();
  19.                                                 //int age = stu.getAge();
  20.                                                 String add = hm.get(stu);
  21.                                                 System.out.println(stu+"..."+add);       
  22.                                 }
  23.                                
  24.                                
  25.                                        
  26.                 }       
  27. }
复制代码

输出结果:C:\Users\Administrator\Desktop
请问代码中为什么获得student对象stu后就可以直接打印出学生信息而不需要调用学生类里面的方法来输出打印学生名字和年龄呢?

4 个回复

倒序浏览
最近帖子被版主删了好多
回复 使用道具 举报
上面问题中输出结果不用管它哈~
回复 使用道具 举报
Student中的toString(),重新定义了,你看看吧
回复 使用道具 举报
不会 我做了实验 你这个会打印类名+内存地址哈希值 比如:Student@2c006d98 这样的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马