为什么在Java中将HashMap中put()的结果与null进行比较?

问题描述 投票:-1回答:1

我试图了解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进行比较。

java hashmap add hashset
1个回答
2
投票

Set.add的Javadoc说:

返回:如果此集合尚未包含指定的元素,则为true]

Set.add的Javadoc说:

返回:与键关联的先前值;如果没有键的映射关系,则为null。

因此,Map.put是否返回Map.put表示键/值对是否已经在映射中,因此键是否在“集合中”。


0
投票
  • null

© www.soinside.com 2019 - 2024. All rights reserved.