難道這里的key值是Map中存放的Student的id屬性??Student類代碼如下:/**?* 學生類?* @author yang?*2017年1月9日?*/public class Student {?public String id;?public String name;?public Set<Course>courses;?public Student(String id,String name){??this.id=id;??this.name=name;??this.courses=new HashSet<Course>();?}}public MapTest(){??students=new HashMap<String,Student>();?}??/**? * 測試添加:鍵入學生ID,判斷是否被占用,? * 若未被占用,則輸入姓名,創建新學生對象,并且添加到students中? * @param args? */?public void testPut(){??Scanner console=new Scanner(System.in);??int i=0;??while(i<3){???System.out.println("請輸入學生ID");???String ID=console.next();???Student st=students.get(ID);???if(st==null){???//提示輸入學生姓名????System.out.println("請輸入學生姓名");????String name=console.next();????Student newStudent=new Student(ID, name);????students.put(ID, newStudent);????System.out.println("成功添加學生"+students.get(ID).name+students.get(ID).id);????i++;???}???else{????System.out.println("該學生ID已被占用");????continue;???}??}?}??/**? * 測試Map的keySet方法? * @param args? */?public void testKeySet(){??//通過keySet方法,返回Map中的所有“鍵”的Set集合??//Map的keySet方法,返回的是Map中所有"鍵"的Set集合,Set集合喲!??!??Set<String> keySet=students.keySet();??//遍歷KeySet,取得每一個鍵,再調用get方法取得每個鍵對應的value。??System.out.println("總共有"+students.size()+"個學生");??for(String stuId:keySet){???Student st=students.get(stuId);???if(st!=null){???System.out.println("學生"+st.name);???}??}?}
添加回答
舉報
0/150
提交
取消