Student st=students.get(stuID);这里面的 是定义了一个学生对象st来接收 students里面的一个键值对吗?

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

ENCOUTER

2015-04-15 18:34

Student st=students.get(stuID);这里面的  是定义了一个学生对象st来接收 students里面的一个键值对吗?

写回答 关注

3回答

  • jetbbb
    2016-01-20 08:57:45

    get(key)得到的是这个key对应的value  去看看api上面对方法的描述应该是 获取值,没有映射关系;

  • 小肠杆君
    2015-05-13 11:49:05

    不对。

        在Map集合中,键对象和值对象是对应的。Student st=students.get(stuID); 这一语句的解读,需要解读它里面各个参数的对应关系。

        首先得清楚stuID对象是啥,怎么来的,意义是啥。stuID对象在for-each循环中首次定义出现,它用来装keySet集合里的String类型元素--students对象中的键对象。而students对象中的键对象是我们在定义Map集合的对象students时定义的:public Map<String,Student> students; ,这句表明students对象中有两个对应的对象,一个是键对象,类型是String类;一个是其对应的值对象,类型是Student类。然后定义了一个泛型是String类型的Set集合keySet,用来装students对象的所有键对象(类型为String类)。因为Map集合中,键对象和值对象是对应的,所以知道了students的键对象也就可以知道其对应的值对象。然后就是从Set集合中依次取出集合中的元素,也就是students对象的键对象,放在stuID中。这就是stuID的来源,及其意义。

        然后,知道了students的键对象stuID,调用students.get(stuID)方法,得到其对应的值对象。在最开始定义Map集合对象students时,限定了值对象的类型-Student类,所以这里定义一个Student的对象st,让students的值对象指向st的引用,即Student st=students.get(stuID) ,这样就成功地把students中键对象对应的值对象取出来了。

       

        

       

  • luulsj
    2015-04-15 18:56:53

    “键值对吗?”的意思是“键值,对吗?”还是“键值对 吗?”

Java入门第三季

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

409780 学习 · 4339 问题

查看课程

相似问题