關(guān)于get()得到的值的問(wèn)題
課中代碼:
//創(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ò)調(diào)用sudents的put方法,添加ID-學(xué)生的映射
students.put(ID, newStudent);
System.out.println("成功添加學(xué)生:"+students.get(ID).name);
i++;
}else{
System.out.println("該學(xué)生ID已被占用");
continue;
/**
* 測(cè)試Map的KeySet方法
* @param args
*/
public void testKeySet(){
//通過(guò)keySet方法,返回Map中的所有"鍵" 的Set集合
Set<String>keySet=students.keySet();
//取得students容量
System.out.println("總共有:"+students.size()+"學(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);
}
}
這段代碼中第一個(gè)get(ID)是ID是KEY值,而第二段代碼中g(shù)et(stuId)怎么是value值????
2017-09-04
get(ID)中的ID是KEY值,students是map。students.get(ID)是根據(jù)ID這個(gè)KEY值得到map中其對(duì)應(yīng)的Value值。同理,stuId是for遍歷方法的遍歷變量,類(lèi)似于ID,也是個(gè)KEY值,students.get(stuId)得到的也是Value值
2017-07-31
其實(shí)兩段代碼獲得的都是value值,是你自己理解錯(cuò)了
2017-07-27
第一段代碼中的ID值指的是KEY值,所獲取的值是value值,第二段代碼也是這樣的,stuId相當(dāng)於第一段代碼中的ID值,也是KEY值,所獲取的是也是value值