我试图了解HashSet
的实现,并且看到它在内部使用HashMap
。而当您在add
中使用HashSet
时,内部在put
中使用HashMap
如下:
private transient HashMap<E,Object> map;
private static final Object PRESENT = new Object();
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
但是我不明白他们为什么使用此==null
。
这是签名哦放方法:
public V put(K key, V value)
我不明白为什么将put
的结果与null
进行比较。