我正在经历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'的源代码? –