HashSet构造:产生一个HashMap。
contains(o):HashMap.containsKey(key);
put(e):return HashMap.put(e,PRESENT)==null;HashSet的PRESENT为static变量。
HashSet为什么不能没有重复的值:HashMap.put(key,value),如果key不存在,则将新的(key,value)存入,返回null;如果key存在,则更新value,返回旧的value。因为HashSet的PRESENT为static变量,所以相同,所以如果e存在,则等于没有操作(更新旧的value为新的value,但是新旧value同为PRESENT),如果e不存在,则添加(e,PRESENT)。所以HashSet没有重复的值。
remove(o):return map.remove(o)==PRESENT;
HashMap.remove(key)如果key存在返回节点的value(一定为PRESENT),如果key不存在返回null节点的value(null)。