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