码迷,mamicode.com
首页 > 其他好文 > 详细

TreeSet 源码分析

时间:2018-11-30 00:50:42      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:transient   object   构造   源码   实现   接口   new t   present   包含   

TreeSet

1)底层由 TreeMap 支持的 Set 接口实现,Set 中的元素按照自然顺序或指定的比较器排序。

创建实例

    /**
     *  支持此 Set 的底层的 TreeMap 对象
     */
    private transient NavigableMap<E,Object> m;

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

    TreeSet(NavigableMap<E,Object> m) {
        this.m = m;
    }

    /**
     *  构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。
     */
    public TreeSet() {
        this(new TreeMap<>());
    }

    /**
     *  构造一个新的空 TreeSet,它根据指定比较器进行排序。
     */
    public TreeSet(Comparator<? super E> comparator) {
        this(new TreeMap<>(comparator));
    }

    /**
     *  构造一个包含指定 collection 中所有元素的新 TreeSet,它按照元素的自然顺序进行排序。
     */
    public TreeSet(Collection<? extends E> c) {
        this();
        addAll(c);
    }

    /**
     *  构造一个与指定 SortedSet 具有相同映射关系和比较器的新 TreeSet。
     */
    public TreeSet(SortedSet<E> s) {
        this(s.comparator());
        addAll(s);
    }

TreeSet 源码分析

标签:transient   object   构造   源码   实现   接口   new t   present   包含   

原文地址:https://www.cnblogs.com/zhuxudong/p/10041630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!