为什么两个不同地方的students.get(ID),一个可以直接用创建的对象st来代替,另一个却不可以用st代替?
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 name1 = console.next();
// 创建新的学生对象
Student newStudent = new Student(ID, name1);
// 通过调用students的put方法,添加ID-学生映射
students.put(ID, newStudent);
System.out.println("成功添加学生:" +students.get(ID).name+"\n"); //为什么这里的students.get(ID)不可以用st代替?
i++;
} else {
System.out.println("该学生ID已被占用!");
continue;
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public void testKeySet() {
// 通过keySet方法,返回Map中的所有“键”的Set集合
Set<String> keySet = students.keySet();
// 取得students的容量
System.out.println("\n"+"总共有:" + students.size() + "个学生!");
// 遍历keySet,取得每一个键,再调用get方法取得每个键对应的value
for (String stuId : keySet) {
Student st = students.get(stuId);
if (st != null)
System.out.println("学生:" + st.name); //为什么这里的students.get(ID)又可以用st代替?
}
}