set集合怎么保证不重复的

 看源码,hashSet 底层是通过hashMap来实现的,hashSet添加元素add方法

    public boolean add(E e) {
        return map.put(e, PRESENT)==null;
    }

通过判断hashMap put方法是否有返回值,来判断是否添加成功

map.put(e, PRESENT)==null
hashMap如果key值存在,插入相同的key,返回值是上一个value,这就使得set在add相同元素的时候,map.put(e, PRESENT) != null,那么该元素add失败
保证了set元素插入不了重复的元素
原文地址:https://www.cnblogs.com/qingpw/p/14303482.html