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,则链表会转换为红黑树。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步