import?java.util.HashMap;
import?java.util.Map;
import?java.util.Scanner;
import?java.util.Set;
public?class?MapTest?{
?//用來承裝學生類對象
public?Map<String,Student>students;
//在構造器中初始化students屬性
public?MapTest(){
this.students=new?HashMap<String,Student>();
}
//測試添加:輸入學生ID判斷是否被占用
//若未被占用,則輸入姓名,創建學生對象,并且添加到students中
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();
//0創建學生對象
Student?newStudent=new?Student(ID,name);
students.put(ID,?newStudent);
System.out.println("成功添加學生:"+students.get(ID).name);
i++;
}else{
System.out.println("該ID已經被占用");
?
}
}
}
/*
?*?*測試Map的keySet方法
?*?
?*/
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();
}
}
2017-05-31
我將你的代碼復制了一遍 ? 運行了一下 ? 可以 ?沒報錯 ?,你的表述 問題不太清晰,不知道具體問題