关于Set
HashSet
add的时候,当作value;
// 作为HashMap中的value常量,而key则是真正set要存的数据
private static final Object PRESENT = new Object();
底层是HashMap,即由HashMap来实现的;
public HashSet() {
map = new HashMap<>(); // 直接创建一个HashMap
}
HashMap中put方法,简单说:
- key - 与指定值相关联的键。
- value - 与指定键关联的值。
返回值:当存在这个key的时候,会覆盖掉原来的value并返回oldvalue,也就是旧值。
对返回值的进一步解释:
- 如果没有键映射,则返回NULL。
- 该函数返回与指定键关联的旧值。
- 这个操作不管啥条件都会覆盖旧的。
public boolean add(E e) {
return map.put(e, PRESENT)==null;// 添加元素,将数据作为key
}
所以当是一个新的元素加入Set中, HashSet.add()返回的是ture,否则是false;
if (!set.add(num)) {
repeat = num;
break;
}
所以可以用以上命令进行判断是否有重复,且没有的情况进行了add操作!

浙公网安备 33010602011771号