難道這里的key值是Map中存放的Student的id屬性??Student類代碼如下:/**?* 學(xué)生類?* @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>();?}??/**? * 測試添加:鍵入學(xué)生ID,判斷是否被占用,? * 若未被占用,則輸入姓名,創(chuàng)建新學(xué)生對象,并且添加到students中? * @param args? */?public void testPut(){??Scanner console=new Scanner(System.in);??int i=0;??while(i<3){???System.out.println("請輸入學(xué)生ID");???String ID=console.next();???Student st=students.get(ID);???if(st==null){???//提示輸入學(xué)生姓名????System.out.println("請輸入學(xué)生姓名");????String name=console.next();????Student newStudent=new Student(ID, name);????students.put(ID, newStudent);????System.out.println("成功添加學(xué)生"+students.get(ID).name+students.get(ID).id);????i++;???}???else{????System.out.println("該學(xué)生ID已被占用");????continue;???}??}?}??/**? * 測試Map的keySet方法? * @param args? */?public void testKeySet(){??//通過keySet方法,返回Map中的所有“鍵”的Set集合??//Map的keySet方法,返回的是Map中所有"鍵"的Set集合,Set集合喲?。?!??Set<String> keySet=students.keySet();??//遍歷KeySet,取得每一個鍵,再調(diào)用get方法取得每個鍵對應(yīng)的value。??System.out.println("總共有"+students.size()+"個學(xué)生");??for(String stuId:keySet){???Student st=students.get(stuId);???if(st!=null){???System.out.println("學(xué)生"+st.name);???}??}?}
2 回答
已采納

快樂的時光
TA貢獻(xiàn)79條經(jīng)驗 獲得超48個贊
Map的key和value依據(jù)你的需求你自己設(shè)定的,例如上面的代碼?students=new HashMap<String,Student>();
你限定key為學(xué)生學(xué)號,為String類型,value為student實(shí)體類,為Student類型.
主要是依據(jù)你的需求自己設(shè)定的。

路過轉(zhuǎn)
TA貢獻(xiàn)4條經(jīng)驗 獲得超10個贊
map中key和value的數(shù)據(jù)類型是寫代碼的人自己設(shè)定的,然后根據(jù)設(shè)定好的數(shù)據(jù)類型來輸入數(shù)據(jù)
添加回答
舉報
0/150
提交
取消