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,则链表会转换为红黑树。
标签:map,Java,HashMap,Object,add,查找,哈希,public From: https://www.cnblogs.com/lurenjia-bky/p/16967274.html