課程
/后端開發(fā)
/Java
/Java入門第三季
請問?testPut是增加的方法名 可以改為add 或者addd以及其他隨意的名字嗎
2015-12-15
源自:Java入門第三季 5-3
正在回答
逐個問題回答:
Q:testPut是增加的方法名 可以改為add 或者addd以及其他隨意的名字嗎
A: HashMap 類的方法已經(jīng)寫好,所以你調(diào)用HashMap 類的方法的時候當然要用它自己的名字,例如
? ? ? ?Haspmap實例名字.get(KEY)----返回對應(yīng)的對象方法 ; ? ?
? ? ? ?Haspmap實例名.put(Key, Value)----修改對應(yīng)鍵的 Value;?
? ? ? ?也就是你在學校認識了的同學,當然要叫他爸爸媽媽為她起好的名字才會搭理你。
Q:那entrySet keySet這些方法呢 ?
A:首先 ?Haspmap實例名字.EntrySet <K,V> 也是HashMap 類已經(jīng)寫好的方法,返回一個 Entry<K,Y> 類型的對 ? ? ?象object.?
??Set<Entry<String,Student>>?studentList?=students.entrySet(); ??//Haspmap實例名字.EntrySet?<K,V>?()?方法用于遍歷啊,?所以我就取了名字studentList? ??//?類名、方法名、變量名(studentList?)是自己取得名字,因此keySet?可以自己取名
甩上我自己寫的運行成功的代碼塊,跟老師的有點不同,但有注釋哦,可以幫你換位發(fā)現(xiàn)一下:
你可以參考參考,有興趣可以一起交流:
package?com.imooc.season3.CollectionDemo; import?java.util.HashMap; import?java.util.HashSet; import?java.util.Map; import?java.util.Map.Entry; import?java.util.Scanner; import?java.util.Set; /* ?*?Map的測試類別 ?*? ?*?①建立并初始化存儲學生信息的Map集合 ?*?②創(chuàng)建存儲學生的方法,并判斷輸入的信息是否已存在 ?*?③顯示學生列表 ?*?④刪除學生 ?*?⑤顯示學生列表 ?*/ public?class?StudentMap?{ public?Map<String,Student>?students; public?Student?student; public?StudentMap?(){ students?=new?HashMap<String,Student>(); } public?void?SetStudent(){ System.out.println("歡迎輸入學生信息,請輸入將要錄入的學生數(shù)量:"); Scanner?inputNo?=new?Scanner(System.in); int?studentNo=0; try{studentNo?=Integer.parseInt(inputNo.next());?} //將字符串轉(zhuǎn)換成整型 catch(Exception?e){ e.printStackTrace();?????//如果輸入其它的文字就會出錯。 System.out.println("請輸入數(shù)字"); } System.out.println("你將輸入"+studentNo+"位學生的信息"); for(int?i?=1;?i<=studentNo;i++){ System.out.println("請輸入第"+i+"位學生的ID"); Scanner?inputStudent?=new?Scanner(System.in); String?studentID=inputStudent.next(); if(students.isEmpty()){?? //判斷Map集合是否為空,如果學生的集合為空的條件下,直接添加元素 System.out.println("請輸入第"+i+"位學生的姓名"); Scanner?inputStudentName?=new?Scanner(System.in); String?StudentName=inputStudent.next(); Student?studentInfo?=new?Student(studentID?,?StudentName); students.put(studentID,?studentInfo); } else{ while(true){ if(students.get(studentID)==null){? System.out.println("請輸入第"+i+"位學生的姓名"); Scanner?inputStudentName?=new?Scanner(System.in); String?StudentName=inputStudent.next(); Student?studentInfo?=new?Student(studentID?,?StudentName); students.put(studentID,?studentInfo); break; }else{ System.out.println("該學生ID已經(jīng)存在,請重新輸入"); continue; } } } } } public?void?studentList(){ System.out.println("學生數(shù)據(jù)庫有如下:"); System.out.println("============="); Set<String>?keyID?=new?HashSet<String>(); keyID.addAll(students.keySet()); //HashSet.add():Adds?all?of?the?elements?in?the?specified?collection?to?this?set? //HashMap.keySet():Returns?a?Set?view?of?the?keys?contained?in?this?map. for(String?sid:keyID){ Student?st?=students.get(sid); System.out.println("學生ID:"+st.studentId+"?-"+"學生姓名"+st.studentName); } } public?void?deleteStudent(){ while(true){ System.out.println("請輸入要刪除的學生的ID"); System.out.println("============="); Scanner?inputStudentNo?=new?Scanner(System.in); String?StudentNo=inputStudentNo.next(); if(?students.get(StudentNo)==null){ System.out.println("請重新輸入刪除的學生的ID"); continue; }else{ Student?st?=students.get(StudentNo); students.remove(StudentNo);//map.remove(key) System.out.println("刪除的學生?ID:"+StudentNo+st.studentName+"成功?。?); break; }?//遇到空指針異常,先保存要被刪除學生的信息,再移除 } } public?void?modifyStudent(){ while(true){ System.out.println("請輸入需要修改信息的學生ID"); System.out.println("============="); Scanner?inputStudentID?=new?Scanner(System.in); String?StudentNo=inputStudentID.next(); if(?students.get(StudentNo)==null){ System.out.println("請重新輸入要修改的學生ID"); continue;} ????????????????????????????????????????//student.studentId=StudentNo;?空指針類型,對象未初始化, ????????????????????????????????????????//不能對其存儲數(shù)據(jù)(數(shù)組初始化、對象初始化才能保存數(shù)據(jù)) System.out.println("請輸入需要修改的學生姓名"); Scanner?inputStudentInfo?=new?Scanner(System.in); String?StudentInfo=inputStudentInfo.next(); student=?new?Student(StudentNo,StudentInfo); students.put(StudentNo,student); //map.put(Key,Value)?修改對象的Value值. System.out.println("修改的學生?ID:"+StudentNo+"?"+student.studentName+"成功??!"); break; } } public?void?studentList02(){ System.out.println("學生信息如下"); System.out.println("============="); Set<Entry<String,Student>>?studentList?=students.entrySet(); //Map.entrySet()方法遍歷:Returns?a?Set?view?of?the?mappings?contained?in?this?map. for(Entry<String,Student>?sList:?studentList){?//Entry<T,T>?是一個類型 System.out.print("學生ID:"+sList.getKey());?//Entry.getKey()得到鍵 System.out.print("?"); System.out.println("學生姓名:"+sList.getValue().studentName);? //Entry.getValue()得到Value } } public?static?void?main(String?args[]){ StudentMap?t1?=new?StudentMap(); t1.SetStudent(); t1.studentList(); // t1.SetStudent(); t1.deleteStudent(); t1.studentList02(); t1.modifyStudent(); t1.studentList02(); } }
qq_520_6 提問者
梁XX 回復(fù) qq_520_6 提問者
這個你就看你用的是哪個對象調(diào)用的方法啊,比如你用自定義的Student的實例,調(diào)用實例方法,當然就是這個對象的啦,而你使用Map的,比如keySet()方法,那就是Map自帶的方法啊
當然可以,注意調(diào)用的時候?qū)?yīng)就行
Caballarii 回復(fù) qq_520_6 提問者
qq_520_6 提問者 回復(fù) Caballarii
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
3 回答Map中的刪除問題,put()方法。
4 回答刪除map中的學生一節(jié)中
2 回答刪除沒有完全刪除??
1 回答在map中加學號姓名成績的增刪改查應(yīng)該怎么做
3 回答List集合中能否有方法同時刪除多個位置的元素?求解
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-01-27
逐個問題回答:
Q:testPut是增加的方法名 可以改為add 或者addd以及其他隨意的名字嗎
A: HashMap 類的方法已經(jīng)寫好,所以你調(diào)用HashMap 類的方法的時候當然要用它自己的名字,例如
? ? ? ?Haspmap實例名字.get(KEY)----返回對應(yīng)的對象方法 ; ? ?
? ? ? ?Haspmap實例名.put(Key, Value)----修改對應(yīng)鍵的 Value;?
? ? ? ?也就是你在學校認識了的同學,當然要叫他爸爸媽媽為她起好的名字才會搭理你。
Q:那entrySet keySet這些方法呢 ?
A:首先 ?Haspmap實例名字.EntrySet <K,V> 也是HashMap 類已經(jīng)寫好的方法,返回一個 Entry<K,Y> 類型的對 ? ? ?象object.?
甩上我自己寫的運行成功的代碼塊,跟老師的有點不同,但有注釋哦,可以幫你換位發(fā)現(xiàn)一下:
你可以參考參考,有興趣可以一起交流:
2016-01-08
這個你就看你用的是哪個對象調(diào)用的方法啊,比如你用自定義的Student的實例,調(diào)用實例方法,當然就是這個對象的啦,而你使用Map的,比如keySet()方法,那就是Map自帶的方法啊
2015-12-15
當然可以,注意調(diào)用的時候?qū)?yīng)就行