在判断时: student st= students.get(Id);//判断该Id是否被占用。 输出结果时: System.out.println("成功添加学生:"+students.get(Id).Name); 如果把输出结果去掉.Name: System.out.println("成功添加学生:"+students.get(Id)); 那么结果会变成: 成功添加学生:collection.student@232204a1 是不是说明,key所映射的是一个内存地址?
BTW,换了新版面不太习惯啊。。。提问版面不能像旧版那样直接在视频下方吗?
因为Key映射的Student本身就是个类,它自己有两个属性:id和name,也就是说对应两个值,这时候".name"代表你取name这个值,如果“.id”就代表取Student的id值;如果你什么都不“点”,就代表Student类实例,所以输出时,字符串强转输出的就是实例的地址了。