關于get()得到的值的問題
課中代碼:
//創建一個Scanner對象,用來輸入學生的ID和姓名
Scanner console=new Scanner(System.in);
int i=0;
while(i<3){
System.out.println("請輸入學生ID:");
String ID=console.next();
//判斷ID是否被占用
Student st=students.get(ID);
if(st==null){
//提示輸入學生姓名
System.out.println("請輸入學生姓名:");
String name=console.next();
//創建新的學生對象
Student newStudent=new Student(ID,name);
//通過調用sudents的put方法,添加ID-學生的映射
students.put(ID, newStudent);
System.out.println("成功添加學生:"+students.get(ID).name);
i++;
}else{
System.out.println("該學生ID已被占用");
continue;
/**
* 測試Map的KeySet方法
* @param args
*/
public void testKeySet(){
//通過keySet方法,返回Map中的所有"鍵" 的Set集合
Set<String>keySet=students.keySet();
//取得students容量
System.out.println("總共有:"+students.size()+"學生");
//遍歷keySet,取得每一個鍵,在調用get方法取得每個鍵對應的value
for(String stuId:keySet){
Student st=students.get(stuId);
if(st!=null)
System.out.println("學生:"+st.name);
}
}
這段代碼中第一個get(ID)是ID是KEY值,而第二段代碼中get(stuId)怎么是value值????
2017-09-04
get(ID)中的ID是KEY值,students是map。students.get(ID)是根據ID這個KEY值得到map中其對應的Value值。同理,stuId是for遍歷方法的遍歷變量,類似于ID,也是個KEY值,students.get(stuId)得到的也是Value值
2017-07-31
其實兩段代碼獲得的都是value值,是你自己理解錯了
2017-07-27
第一段代碼中的ID值指的是KEY值,所獲取的值是value值,第二段代碼也是這樣的,stuId相當於第一段代碼中的ID值,也是KEY值,所獲取的是也是value值