package?com.xueshengguanli;
import?java.util.HashMap;
import?java.util.Map;
import?java.util.Map.Entry;
import?java.util.Scanner;
import?java.util.Set;
public?class?MapTest?{
????//用來承裝學(xué)生類型對(duì)象
????public?Map<String,Student>?students;
????
????//在構(gòu)造器中初始化students屬性
????public?MapTest()?{
????????this.students=new?HashMap<String,Student>();
????}
????
????/**
?????*?輸入學(xué)生id,判斷是否被占用,,
?????*?若未被占用,則輸入姓名,創(chuàng)建新學(xué)生對(duì)象,并且
?????*?添加到students中
?????*?@param?args
?????*?@return?
?????*/
?????public?void?testPut()?{
?????????Scanner?in=new?Scanner(System.in);
?????????int?i=0;
?????????while(i<3)?{
?????????????System.out.println("請(qǐng)輸入學(xué)生id");
?????????????String?id=in.next();
?????????????//判斷id是否被占用
?????????????Student?st=students.get(id);
?????????????if(st==null)?{
?????????????????System.out.println("請(qǐng)輸入學(xué)生姓名");
?????????????????String?name=in.next();
?????????????????Student?newStudent=new?Student(id,name);
?????????????????students.put(id,?newStudent);
?????????????????System.out.println("成功添加學(xué)生"+students.get(id).name);
?????????????????i++;
?????????????}else?{
?????????????????System.out.println("學(xué)生id已被占用");
?????????????????continue;
?????????????}
?????????}
?????}
?????
?????/**
??????*?測試map的keySet方法
??????*?
??????*?@param?args
??????*/
?????public?void?testKeySet()?{
?????????//通過keySet方法,返回Map中所有"鍵"的set集合
?????????Set<String>?keySet=students.keySet();
?????????//取得students容量
?????????System.out.println("總共有"+students.size()+"個(gè)學(xué)生");
?????????//通過遍歷keySet對(duì)象,來取得map中每一個(gè)鍵,再調(diào)用map的get方法取得每個(gè)鍵對(duì)應(yīng)的value
?????????for(String?stuid:keySet)?{
?????????????Student?st=students.get(stuid);
?????????????if(st!=null)?{
?????????????????System.out.println("學(xué)生:"+st.name);
?????????????}
?????????}
?????}
?????
?????public?void?testRemove()?{
?????????Scanner?in=new?Scanner(System.in);
?????????while(true)?{
?????????????System.out.println("請(qǐng)輸入要?jiǎng)h除的學(xué)生id");
?????????????String?id=in.next();
?????????????Student?st=students.get(id);
?????????????if(st==null)?{
?????????????????System.out.println("沒有此人");
?????????????????continue;
?????????????}else?{
?????????????????students.remove(id);
?????????????????System.out.println("學(xué)生"+st.name+"已經(jīng)刪除");
?????????????????break;
?????????????}
?????????}
?????}
?????
?????public?void?testEntrySet()?{
?????????Set<Entry<String,Student>>?entrySet=students.entrySet();
?????????for(Entry<String,Student>?entry:entrySet)?{
?????????????System.out.println("取得鍵"+entry.getKey());
?????????????System.out.println("對(duì)應(yīng)值為"+entry.getValue().name);
?????????}
?????}
????
????
????public?static?void?main(String[]?args)?{
????????//?TODO?Auto-generated?method?stub
????MapTest??mp=new?MapTest();
????mp.testPut();
????mp.testKeySet();
????mp.testRemove();
????mp.testEntrySet();
????}
}
運(yùn)行結(jié)果:請(qǐng)輸入學(xué)生id
1
請(qǐng)輸入學(xué)生姓名
we
成功添加學(xué)生1
請(qǐng)輸入學(xué)生id
2
請(qǐng)輸入學(xué)生姓名
rng
成功添加學(xué)生2
請(qǐng)輸入學(xué)生id
3
請(qǐng)輸入學(xué)生姓名
ig
成功添加學(xué)生3
總共有3個(gè)學(xué)生
學(xué)生:1
學(xué)生:2
學(xué)生:3
請(qǐng)輸入要?jiǎng)h除的學(xué)生id
2
學(xué)生2已經(jīng)刪除
取得鍵1
對(duì)應(yīng)值為1
取得鍵3
對(duì)應(yīng)值為3
2018-08-07
查看Student類中 ?public Student(String id,String name) 是否正確
是不是 String id和String name寫反了