慕無(wú)忌1213685
2016-05-25 16:31:25
package com.imooc.collection;import java.util.HashMap;import java.util.Map;import java.util.Scanner;import java.util.Set;public class MapTest { /** * 用來(lái)承裝學(xué)生類(lèi)型對(duì)象 */ public Map<String,Student> students; /* * 在構(gòu)造器中初始化students屬性 */ public void MapTest(){ this.students = new HashMap<String,Student>(); } /* * 測(cè)試添加:輸入學(xué)生ID,判斷是否被占用,若未被占用,則輸入學(xué)生姓名, * 創(chuàng)建新學(xué)生對(duì)象,并且添加到students中 */ public void tsetPut(){ //創(chuàng)建一個(gè)Scanner對(duì)象,用來(lái)獲取輸入的學(xué)生ID和姓名 Scanner console = new Scanner(System.in); int i = 0; while(i<3){ System.out.println("請(qǐng)輸入學(xué)生ID:"); String ID = console.next(); //判斷該ID是否被占用 Student st = students.get(ID); if(st == null){ //提示輸入學(xué)生姓名 System.out.println("請(qǐng)輸入學(xué)生姓名:"); String name = console.next(); //創(chuàng)建新的學(xué)生對(duì)象 Student newStudent = new Student(ID,name); //通過(guò)students的put方法,添加ID-學(xué)生映射 students.put(ID, newStudent);// System.out.println("成功添加學(xué)生:"+students.values()); System.out.println("成功添加學(xué)生:"+students.get(ID).name); i++; }else{ System.out.println("該學(xué)生ID已被占用!"); continue; } } } /* * 測(cè)試Map的keySet方法 */ public void testKeySet(){ //通過(guò)keyset方法,返回Map中的所有“鍵”的Set集合 Set<String> keySet = students.keySet(); //取得students的容量 System.out.println("總共有" + students.size() + "個(gè)學(xué)生!"); //遍歷keySet取得每一個(gè)鍵,再調(diào)用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 static void main(String[] args) { MapTest mt = new MapTest(); mt.tsetPut(); mt.testKeySet(); }}
13 回答
已采納

陌顏enjoy
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超2個(gè)贊
你所說(shuō)的那個(gè)構(gòu)造器的問(wèn)題,你寫(xiě)的是一般函數(shù)哪里是什么構(gòu)造器,當(dāng)然不會(huì)執(zhí)行里面的那句都沒(méi)有調(diào)用

快過(guò)來(lái)讓我看看
TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超2個(gè)贊
完整代碼貼上來(lái)啊,目前看來(lái)應(yīng)該是students沒(méi)有實(shí)例化

相敬如賓
TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超1個(gè)贊
這兩個(gè)不應(yīng)該要一樣的嗎?還有25行不是應(yīng)該改成public static void MapTst(){}這樣嗎?

留給沿海地帶
TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊
你看下你這行,Student st = student.get(ID); 等號(hào)右邊的student,第一個(gè)字母s你寫(xiě)的是小寫(xiě)的,你應(yīng)該只是在上面定義了一個(gè)Student student,但是并沒(méi)有給它實(shí)例化
添加回答
舉報(bào)
0/150
提交
取消