Java各種集合判斷是否存在某個元素--contains()

1.List的contains(obj)方法

  實際上,List調用contains(Object obj)方法時,會遍歷List中的每一個元素,然後再調用每個元素的equals()方法去跟contains()方法中的參數進行比較,如果有一個元素的equals()方法返回true則contains()方法返回true,否則所有equals()方法都不返回true,則contains()方法返回false。因此,需要重寫equals()方法。

2.Set的Contains(obj)方法

  當調用HashSet的contains(Object obj)方法時,其實是先調用每個元素的hashCode()方法來返回哈希碼,如果哈希碼的值相等的情況下再調用equals(obj)方法去判斷是否相等,只有在這兩個方法所返回的值都相等的情況下,才判定這個HashSet包含某個元素。因此,需重寫hashCode()方法和equals()方法。

3. Map中是否包含指定的Key和Value

  在Map中,用containsKey()方法,判斷是否包含某個Key值;用containsValue()方法,判斷是否包含某個Value值。

注:跟List中的Contains()方法一樣,Map中的ContainsValue()方法也需要調用某個Value值的equals()方法,去和參數對象進行比較,如果匹配成功,返回結果爲true,說明在Map中的Value值確實包含參數對象。因此,需要重寫equals()方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章