我正在經歷HashSet
的add
方法。提及的是,HashSet如何不允許重複?
如果這個集合已經包含元素,那麼調用離開集合不變並返回false。
但add
方法是內部節省HashMap
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
值的HashMap
的put
方法指出
將指定值與此映射中指定的鍵。如果地圖先前包含密鑰的映射,則舊值將被替換。
所以如果HashMap
的put
方法取代了舊的價值,該HashSet
add
方法是如何離開設定不變的重複元素的情況下?
查找'HashSet.add'的源代碼的榮譽。你有沒有查找'HashMap.put'的源代碼? –