一直顯示ID已被占用
package imooc_Map_ManageStudents;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
?* 利用Map管理學(xué)生信息,實現(xiàn)增刪改查的功能
?* @author john
?*m
?*/
public class Test_Map{
public static void main(String[] args) {
Test_Map tm=new Test_Map();
tm.testPut();
}
//創(chuàng)建含有泛型的Map對象<key,value>
Map <String,Student> students ;
//利用構(gòu)造方法初始化students
public Test_Map() {
this.students=new HashMap<String, Student>();
}
/**
* 測試添加方法,從鍵盤輸入ID,判斷ID是否被占用,未被占用繼續(xù)輸入姓名,存入students中
*/
public void testPut(){
System.out.println("請輸入學(xué)生ID:");
Scanner input=new Scanner(System.in);
//循環(huán)控制每次只能輸入三個ID
int i=0;
String ID=input.next();//存放輸入的ID
while(i<3) {
if(students.get(ID)==null) {
//輸入的ID對應(yīng)的value為空,提示輸入學(xué)生姓名
System.out.println("請輸入學(xué)生姓名:");
String Name=input.next();
//創(chuàng)建一個新的Student對象
Student newStudent=new Student(ID,Name);
//利用HashMap的put方法,把Stu1放入students中
students.put(ID, newStudent);
System.out.println("成功添加學(xué)生:"+students.get(ID).Name);
i++;
}else {
System.out.println("該ID已被占用!");
continue;
}
}
}
}
2020-12-01
你的判斷有問題,每次輸入都是實例化一個新的對象,你的是保存了第一次輸入的
2020-08-28
應(yīng)該把提示輸入學(xué)生ID、接收從鍵盤輸入的ID這兩句代碼放在while循環(huán)內(nèi)。