有關(guān)ContainsKey方法和containsValue方法的區(qū)別,以及原因???
1.containsKey()方法中的參數(shù)為什么是String類型的值,而containsValue()方法中的參數(shù)用的是一個student類型的對象,是不是既可以是基本類型也可以是對象啊
2.為什么containsValue()方法需要重寫equals()方法和hashcode()方法,而containsKey()方法不需要
3。為什么containsValue()方法要重寫hashcode()方法?
2016-06-20
問題一:視頻上用的是Map集合,需要傳遞兩個參數(shù),老師通過泛型規(guī)定了是String和student(這個是可以自定義的)所以containsKey()方法獲取的是String類型的值;其次參數(shù)必須是對象,要想用基本類型,必須是他的封裝類型(Integer,Double等),另為String不是基本類型,是對象!
問題二:因為Java中自帶的對象類型(例如String,StringBuilder等)都已經(jīng)被重寫過equals()方法和hashcode()方法等,而自定義的對象(Student)則需要你自己去重寫。
問題三:重寫hashcode()方法主要是針對Map和Set集合,保證在equals()相等的時候,hashCode值相等,而equals()不等時,hashCode值不相等,便于HashMap等集合的查詢功能。
【HashMap等集合查找元素先是判斷HashCode值是否相等,在判斷equals()是否相等,都相等才查找到正確的元素】自行理解?。?!
2016-09-02
String不是基本類型,是對象!前半句說得對,后半句說得有問題