public?class?MapTest?{
public?Map<String,Students>?stu;
Scanner?input?=??new?Scanner(System.in);
/*
?*?MapTest構(gòu)造函數(shù);
?*/
public?MapTest(){
this.stu?=?new?HashMap<String,Students>();
}
/*
?*?添加方法(給MAP添加學(xué)生對(duì)象)
?*?輸入ID,如果ID不存在,則繼續(xù)添加name
?*?如果ID存在,提示此ID已存在
?*/
public?void?Put(){
int?i?=?1;
System.out.println("添加方法運(yùn)行了,請(qǐng)?zhí)砑?個(gè)學(xué)生!");
while(i?!=?0?){
System.out.println("請(qǐng)輸入學(xué)生ID:");
String?id?=?input.next();
if(stu.get(id)==null){//get方法是得到對(duì)應(yīng)ID的value;
System.out.println("請(qǐng)輸入學(xué)生name:?");
String?name?=?input.next();
Students?st?=?new?Students(id,name);//將id和name屬性給學(xué)生對(duì)象;
stu.put(id,?st);//添加ID和學(xué)生對(duì)象;
}else{
System.out.println("該ID已被占用,請(qǐng)重新輸入:");
}
System.out.println("繼續(xù)添加請(qǐng)輸入1,停止添加請(qǐng)輸入0");
i?=?input.nextInt();
}
}
/*
?*?2種方法遍歷MAP
?*/
public?void?forEach(){
System.out.println("學(xué)生庫中有"+stu.size()+"個(gè)學(xué)生:");
// for(String?sr:stu.keySet()){//keySet返回的是key集,遍歷id從而得到student;
// System.out.println(sr+":"+stu.get(sr).name);
// }
for(Students?ss:stu.values()){//values返回的是value集,遍歷value直接得到student;
System.out.println(ss.id+":"+ss.name);
}
}
/*
?*?args
?*/
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
MapTest?mt?=?new?MapTest();
mt.Put();
mt.forEach();
}
}

2016-04-07
剛運(yùn)行了你的代碼,代碼是沒有問題的。結(jié)果是無序輸出的。你多試兩次就可以看出了??赡苣氵@次輸出的正好是按照你的那個(gè)輸入順序來的,純屬巧合??梢匀ベI彩票啦~