HashSet的实现

      HashSet在开发过程中是很长用的,我们很多时候都会借住其不能存储重复内容进行去重;可是很多时候,我们都忽略了其实现原理。如果没有HashSet我们应该使用什么去实现同样的功能呢?

    我们看看源码,可以发现原来HashSet就是对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;

    // 固定的一个值
    private static final Object PRESENT = new Object();

    /**
     * 创建一个空的HashSet,存储对象HashMap,默认容量是16,加载因子时0.75.
     */
    public HashSet() {
        map = new HashMap<>();
    }

 

posted @ 2015-08-24 21:12  开心朵朵  阅读(111)  评论(0编辑  收藏  举报