qq_慕用719741
2019-04-24 10:00
最后都是ID号 不是学生名字?求解
虽然有点晚 if判断条件错误
你的代码跟老师讲的一样,
你可以试试讲st.id也输出,看看是什么
/**
* 测试添加:输入学生Id,判断是否被占用
* 若未被占用,则输入姓名,创建新学生对象,并且添加到students中
*/
public void testPut(){
//创建一个Scanner对象,用来获取输入的学生Id和姓名
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);
//通过调用students的put方法,添加ID-学生映射
students.put(ID,newStudent);
System.out.println("成功添加学生:" + students.get(ID).name);
i++;
}
else {
System.out.println("该学生ID已被占用!");
continue;
}
}
}
/**
* 测试Map的keySet方法
*/
public void testKeySet(){
//通过keySet方法,返回Map中的所有“键”的Set集合
Set<String> keySet = students.keySet();
//取得students的容量
System.out.println("总共有:" + keySet.size() + "个学生");
//遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
for (String stuId:keySet){
Student st = students.get(stuId);
if (st != null)
System.out.println("学生:" + st.name);
}
}Java入门第三季
409775 学习 · 4546 问题
相似问题