集合TreeSet原理刨解JDK1.8(8)

    技术2022-07-29  92

    TreeSet实现Set接口有序实现Comparable()接口才行,排重。底层基于TreeMap实现

    构造方法 1.第一个默认构造方法创建对象, 对象要实现Comparable比较 2.第二个传入比较器,不要求对象实现Comparable。

    public TreeSet() { this(new TreeMap<E,Object>()); } public TreeSet(Comparator<? super E> comparator) { this(new TreeMap<>(comparator)); }

    普通对象没有实现Comparable报错

    //构造方法创建调用m引用TreeMap,m位于TreeMap实现后面的NavigableMap private transient NavigableMap<E,Object> m; //默认值共享 private static final Object PRESENT = new Object();

    和TreeMap用法一样,主要是调用NavigatableMap()接口

    public boolean add(E e) { return m.put(e, PRESENT)==null; }
    Processed: 0.013, SQL: 9