问答详情
源自:6-4 学生选课---判断 Map 中是否包含指定的 key 和 value

求大神来帮我解答.

students.containsValue(name);

students.containsValue(new Student(null,name));

这两者之间为什么选后者,前者出来是false。

提问者:qq_零_14 2016-08-01 09:49

个回答

  • 松氵鼠lzh
    2016-08-01 10:57:33
    已采纳

    Map students中存的是键值对,一个key对应一个value。定义Map students时规定了键(key)的泛型是String类型,而值(value)的泛型是Student类型。所以在查找Map students中是否包含某个值对象时,应该传入值对应的类型的参数,也就是Student类型。所以把要查找的学生姓名包装成一个Student类作为要查找的value的值。

  • 慕函数7024581
    2016-08-01 14:19:12

    首先你要看你定义的value是什么类型的,是String类或是student类;如果你容器中保存的是student类,你传入的数据类型是String,自然是查询不到,返回false;如果是student类,还要去查找是否有这个对象的,如果有返回true,否则返回false.


  • 握紧她的手心
    2016-08-01 10:45:49

    这里的students是map类型的,其中key是string类型,value是Student类型的,所以在调用他的containsValue方法的时候传给他的应该是一个Student类型的对象。