Java中的查找树和哈希表

1、TreeSet(红黑树实现)

底层使用TreeMap实现,储存结构为红黑树。

构造器:

    public TreeSet() {
        this((NavigableMap)(new TreeMap()));
    }

add操作,把数据作为key加入map中,把一个Object对象加入value中。

    private static final Object PRESENT = new Object();

    public boolean add(E var1) {
        return this.m.put(var1, PRESENT) == null;
    }

 

2、HashSet(哈希表实现)

底层使用HashMap实现,底层使用哈希表实现。

 

构造器:

private transient HashMap<E, Object> map;
public HashSet() { this.map = new HashMap(); }

add操作,也是把值作为key,Object对象作为value存入其中。

    public boolean add(E var1) {
        return this.map.put(var1, PRESENT) == null;
    }

3、HashMap(哈希表)

默认的数组长度为16,装填因子为0.75。

  jdk1.7以及之前,使用数组+链表实现。

因为冲突较多的时候,性能不高,于是:

  jdk1.8以后,若一个链表中的元素大于8,则链表会转换为红黑树。

 

posted @ 2022-12-08 20:49  在博客做笔记的路人甲  阅读(38)  评论(0编辑  收藏  举报