jdk源码——集合(TreeSet)

TreeSet集合,也没啥分析的,底层是一个TreeMap集合,TreeSet的方法,也都是调用TreeMap的方法。

——TreeSet集合的成员变量

    private transient NavigableMap<E,Object> m;//底层是一个Map,TreeMap就是NavigableMap的一个实现类,
    // Dummy value to associate with an Object in the backing Map
    private static final Object PRESENT = new Object();//Map集合是key-value,set集合使用默认的Objcet对象充当value值

——TreeSet集合的构造方法

    /*
     * 构造方法
     */
    TreeSet(NavigableMap<E,Object> m) {
        this.m = m;
    }
    
    /*
    无参数构造方法,
     */
    public TreeSet() {
        this(new TreeMap<E,Object>());//调用的是TreeSet(NavigableMap<E,Object> m)构造方法
    }

    public TreeSet(Comparator<? super E> comparator) {
        this(new TreeMap<>(comparator));
    }
    
    public TreeSet(Collection<? extends E> c) {
        this();//调用的是TreeSet()
        addAll(c);
    }
    
    public TreeSet(SortedSet<E> s) {
        this(s.comparator());//调用的是TreeSet(Comparator<? super E> comparator)
        addAll(s);
    }

    ——TreeSet集合的普通方法

      自己去看api吧。

       嗯,这一篇分析完了,嗯!

猜你喜欢

转载自blog.csdn.net/qq_36838854/article/details/80374742