java set HashSet

java set接口 HashSet


HashSet底层是 HashMap实现的。其实HashSet中存放的值,就是HashMap中key值。
如果对HashMap实现不太明白可以参考上篇 java map hashmap博文。


   

public class HashSet<E>
    extends AbstractSet<E>
    implements Set<E>, Cloneable, java.io.Serializable
{
    static final long serialVersionUID = -5024744406713321676L;

    private transient HashMap<E,Object> map;

    // Dummy value to associate with an Object in the backing Map
    private static final Object PRESENT = new Object();

    /**
     * Constructs a new, empty set; the backing <tt>HashMap</tt> instance has
     * default initial capacity (16) and load factor (0.75).
     */
    //通过构造方法HashSet底层是HashMap实现的。
    public HashSet() {
	map = new HashMap<E,Object>();
    }

    //set add方法。
    public boolean add(E o) {
	return map.put(o, PRESENT)==null;
    }

    //set 遍历,其实就是Map的key
    public Iterator<E> iterator() {
	return map.keySet().iterator();
    }





你可能感兴趣的:(hashset)