【发布时间】:2014-04-08 20:45:37
【问题描述】:
我正在通过HashSet 的add 方法。提到了
如果该集合已经包含该元素,则调用保持该集合不变并返回 false。
但add 方法在内部保存HashMap 中的值
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
HashMap 的 put 方法声明
将指定值与此映射中的指定键相关联。如果映射先前包含键的映射,则替换旧值。
那么如果HashMap 的put 方法替换了旧值,那么HashSet add 方法如何在重复元素的情况下保持集合不变?
【问题讨论】:
-
感谢您查找
HashSet.add的源代码。你查过HashMap.put的来源吗?