package imooc_Map_ManageStudents;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
* 利用Map管理学生信息,实现增删改查的功能
* @author john
*m
*/
public class Test_Map{
public static void main(String[] args) {
Test_Map tm=new Test_Map();
tm.testPut();
}
//创建含有泛型的Map对象<key,value>
Map <String,Student> students ;
//利用构造方法初始化students
public Test_Map() {
this.students=new HashMap<String, Student>();
}
/**
* 测试添加方法,从键盘输入ID,判断ID是否被占用,未被占用继续输入姓名,存入students中
*/
public void testPut(){
System.out.println("请输入学生ID:");
Scanner input=new Scanner(System.in);
//循环控制每次只能输入三个ID
int i=0;
String ID=input.next();//存放输入的ID
while(i<3) {
if(students.get(ID)==null) {
//输入的ID对应的value为空,提示输入学生姓名
System.out.println("请输入学生姓名:");
String Name=input.next();
//创建一个新的Student对象
Student newStudent=new Student(ID,Name);
//利用HashMap的put方法,把Stu1放入students中
students.put(ID, newStudent);
System.out.println("成功添加学生:"+students.get(ID).Name);
i++;
}else {
System.out.println("该ID已被占用!");
continue;
}
}
}
}
你的判断有问题,每次输入都是实例化一个新的对象,你的是保存了第一次输入的
应该把提示输入学生ID、接收从键盘输入的ID这两句代码放在while循环内。