jinphic
2017-01-28 00:41
我按照视频中的步骤写代码,但是我看一下JDK 的API,发现containsValue()的方法的参数是Object value,而containsKey()的方法参数是Object key。在前面的实例化中测试containsKey()时传递的是String ID就可以找得到,但是测试containsValue()时传递的是一个对象,这与API不符合啊?!而且我试过了,如果传递的是一个String name给containsValue()----就像是String ID传递给containsKey()方法一样,那么无论改写equals与否,都是找不到。所以,到底这两个方法,使用的原理是什么,使用的参数又是什么,搞糊涂了。
你用containsValue()方法查询是要根据你的Map定义的泛型来决定,你在Map类型的students中的value就是Student类,所以传递参数肯定也要是Student类的对象,而不是String name。简单来说就是,你查students的内部元素,要查找是否存在某个元素,也应该与students定义类型一致,否则肯定找不到。主要看你定义的泛型public Map<String,Student> students;
Java入门第三季
409792 学习 · 4340 问题
相似问题