對視頻的疑問--Map 中的containsValue() 方法的參數是什么
我按照視頻中的步驟寫代碼,但是我看一下JDK 的API,發現containsValue()的方法的參數是Object value,而containsKey()的方法參數是Object key。在前面的實例化中測試containsKey()時傳遞的是String ID就可以找得到,但是測試containsValue()時傳遞的是一個對象,這與API不符合啊?!而且我試過了,如果傳遞的是一個String name給containsValue()----就像是String ID傳遞給containsKey()方法一樣,那么無論改寫equals與否,都是找不到。所以,到底這兩個方法,使用的原理是什么,使用的參數又是什么,搞糊涂了。
2017-01-29
你用containsValue()方法查詢是要根據你的Map定義的泛型來決定,你在Map類型的students中的value就是Student類,所以傳遞參數肯定也要是Student類的對象,而不是String name。簡單來說就是,你查students的內部元素,要查找是否存在某個元素,也應該與students定義類型一致,否則肯定找不到。主要看你定義的泛型public Map<String,Student> students;