为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~

不对。

    在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中键对象对应的值对象取出来了。

   

    

   

2 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信