这是1.8中hashset的add方法,其中add时放置了一个final Object,请问这个有什么必要性吗
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
先易‘后难’
因为底层存储是基于hashmap,value需要一个固定值,所以局搞了个present写在那,应该就是个摆设、
首先add方法返回值是boolean,表明当前添加的元素是否出现了重复,里面直接调用的map.put(k,v),put方法返回的是,如果key出现了重复,则返回上次存放的的value,并且覆盖value。假如第一次存放,put返回是null,add返回是true;元素重复,则put返回一个present对象,add返回false