为了账号安全,请及时绑定邮箱和手机立即绑定

我这段代码,为什么显示的序号而不是名字?

我这段代码,为什么显示的序号而不是名字?

一缕阳光1997 2016-10-09 23:07:36
package com.imooc_collection;import java.util.HashMap;import java.util.Map;import java.util.Scanner;import java.util.Set;public class MapTest { /**  * 用来承装学生类型对象  * @param args  */ public Map<String,Student>students; /**  * 在构造器中初始化student属性  * @param args  */ public MapTest(){  this.students=new HashMap<String,Student>(); } /**  * 测试添加:输入学生ID,判断是否被占用  * 若违背占用,则输入姓名,创建新学生对象,并且  * 添加到student中  * @param args  */ public void testPut(){  Scanner console=new Scanner(System.in);  int i=0;  while(i<3){   System.out.println("请输入学生ID:");   String ID=console.next();   //判断该ID是否被占用   Student st=students.get(ID);   if(st==null){    System.out.println("请输入学生姓名:");    String name=console.next();    //创建一个新的学生对象    Student newStudent=new Student(ID,name);    //通过调用student的put方法,添加ID-学生映射    students.put(ID,newStudent);    System.out.println("成功添加学生:"+students.get(ID).name);    i++;   }else{    System.out.println("该学生ID已被占用!");    continue;   }  } }  /**  * 测试Map的KepSet方法  * @param args  */ public void testKeySet(){  //通过keySet方法,返回Map中的所有“键”的set集合  Set<String>keySet=students.keySet();  //取得students的容量  System.out.println("总共有:"+students.size()+"个学生!");  //遍历keySet,取得每一个键,再调用get方法取得每个键对应的value  for(String stuId:keySet){   Student st=students.get(stuId);   if(st!=null){    System.out.println("学生:"+st.name);   }  } } public static void main(String[] args) {  // TODO Auto-generated method stub  MapTest mt=new MapTest();  mt.testPut();  mt.testKeySet(); }}
查看完整描述

2 回答

?
大咪

TA贡献785条经验 获得超332个赞

在student的类里重写tostring方法。。把每个属性都加上就行

eclipse里按alt+shift+s选择

英文是generate toString

查看完整回答
反对 回复 2016-10-09
  • 2 回答
  • 0 关注
  • 1181 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信