关于get()得到的值的问题

来源:5-2 学生选课---使用 Map 添加学生

一个丶橙子

2017-07-26 22:52

课中代码:

//创建一个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值????

写回答 关注

3回答

  • nuanchazy
    2017-09-04 22:22:40

    get(ID)中的ID是KEY值,students是map。students.get(ID)是根据ID这个KEY值得到map中其对应的Value值。同理,stuId是for遍历方法的遍历变量,类似于ID,也是个KEY值,students.get(stuId)得到的也是Value值

  • 苦逼先生
    2017-07-31 18:16:51

    其实两段代码获得的都是value值,是你自己理解错了

  • XunselF
    2017-07-27 09:23:23

    第一段代碼中的ID值指的是KEY值,所獲取的值是value值,第二段代碼也是這樣的,stuId相當於第一段代碼中的ID值,也是KEY值,所獲取的是也是value值

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409775 学习 · 4546 问题

查看课程

相似问题